ऐसे Functions जो Type लेते हैं
comptime T parameters से generics।
ऐसे Functions जो Type लेते हैं, CoddyKit पर Zig Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Zig Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Zig Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
जेनेरिक्स, Zig का तरीका
Zig में जेनेरिक्स के लिए अलग सिंटैक्स नहीं है। इसके बजाय, कोई फ़ंक्शन अपने पैरामीटरों में से एक के रूप में type स्वीकार कर सकता है और उसे किसी भी अन्य मान की तरह उपयोग कर सकता है। ✨
Type पैरामीटर comptime होता है
क्योंकि कोड बनते समय प्रकार ज्ञात होना चाहिए, इसलिए प्रकार पैरामीटर को हमेशा comptime चिह्नित किया जाता है। कॉल करने वाला वास्तविक प्रकार पास करता है।
fn first(comptime T: type, items: []const T) T {
return items[0];
}type एक वास्तविक प्रकार है
Zig में type शब्द स्वयं एक प्रकार है, इसलिए किसी पैरामीटर को type के रूप में घोषित करने का अर्थ है कि वह कोई भी प्रकार हो सकता है।
comptime T: typeहस्ताक्षर में T का उपयोग करें
एक बार प्रकार का नाम T रखने के बाद, आप उसे बाद के पैरामीटरों और वापसी प्रकार के लिए उपयोग कर सकते हैं और उन सभी को आपस में जोड़ सकते हैं।
fn max(comptime T: type, a: T, b: T) T {
return if (a > b) a else b;
}जेनेरिक फ़ंक्शन को कॉल करना
इसे कॉल करने के लिए पहले ठोस प्रकार और फिर सामान्य आर्ग्युमेंट पास करें। यहाँ हम दो i32 मानों में से बड़े मान का अनुरोध कर रहे हैं।
const m = max(i32, 3, 9);एक फ़ंक्शन, अनेक प्रकार
वही फ़ंक्शन ऐसे किसी भी प्रकार के लिए काम करता है जो आपके उपयोग किए गए ऑपरेशनों का समर्थन करता हो। i32 की जगह f64 रखने पर भी कोड सही रहता है।
const f = max(f64, 1.5, 2.5);Zig प्रत्येक कॉल को विशिष्ट बनाता है
आपके द्वारा पास किए गए प्रत्येक अलग प्रकार के लिए Zig फ़ंक्शन की एक समर्पित प्रति बनाता है। इसे monomorphization कहते हैं और यह संकलन-समय पर होता है।
बॉडी जेनेरिक रहती है
कॉल के समय आप प्रकार स्पष्ट रूप से लिखते हैं, लेकिन बॉडी जेनेरिक रहती है। Zig जाँचता है कि आपके उपयोग किए गए ऑपरेशन आने वाले किसी भी T के लिए मान्य हैं।
type का अर्थ है कोई छिपी हुई boxing नहीं
वास्तविक type पास करना रन-टाइम बहुरूपता से अलग है: न कोई vtable होता है, न boxing—केवल बिल्ड-समय पर चुनी गई ठोस प्रति होती है।
त्रुटियाँ संकलन-समय पर सामने आती हैं
यदि आप max को ऐसे प्रकार के साथ कॉल करते हैं जिसमें greater-than ऑपरेटर नहीं है, तो Zig रन-टाइम पर नहीं, बल्कि उस विशिष्ट रूप को बनाते समय समस्या बताता है।
प्रकार पैरामीटर पहले आते हैं
परंपरा के अनुसार comptime प्रकार पैरामीटर को मान वाले पैरामीटरों से पहले लिखा जाता है, ताकि डेटा का वर्णन करने से पहले प्रकार ज्ञात हो।
fn clone(comptime T: type, value: T) T {
return value;
}त्वरित जाँच
आप ऐसा फ़ंक्शन चाहते हैं जो Zig में अनेक प्रकारों के लिए काम करे। आप उसका प्रकार पैरामीटर कैसे घोषित करेंगे?
पुनरावलोकन
फ़ंक्शन को जेनेरिक बनाने के लिए comptime T: type पैरामीटर पास करें। Zig आपके द्वारा वास्तव में उपयोग किए गए प्रत्येक प्रकार के लिए एक विशिष्ट संस्करण बनाता है। 🎯
एआई शिक्षक के साथ Zig सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “ऐसे Functions जो Type लेते हैं” पाठ निःशुल्क है?
हाँ—“ऐसे Functions जो Type लेते हैं” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Zig Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Zig Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“ऐसे Functions जो Type लेते हैं” में मैं क्या सीखूँगा?
comptime T parameters से generics। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Zig Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Zig Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Zig Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“ऐसे Functions जो Type लेते हैं” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Zig Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Zig Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- ऐसे Functions जो Type लेते हैं
- Generic Data Structures
- @TypeOf और Type Reflection
- anytype Parameters