Zig Academy · पाठ

Tagged Unions और switch

union variants पर pattern matching करें।

पाठ 3, कुल 4 में से13 चरण

Tagged Unions और switch, CoddyKit पर Zig Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Zig Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Zig Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

विकल्प को याद रखना

साधारण union यह भूल जाता है कि कौन-सा field सक्रिय है। tagged union value को एक enum tag के साथ रखता है, जो वर्तमान विकल्प को दर्ज करता है।

Tagged Union घोषित करना

आप union(enum) लिखकर Zig को अपने-आप matching tag बनाने देते हैं—हर field के लिए एक tag नाम।

const Value = union(enum) { int: i64, text: []const u8 };

Tag field पर नज़र रखता है

अब value अपना tag साथ रखती है, जैसे .int या .text। union को हमेशा पता रहता है कि वह इस समय कौन-सा विकल्प रखे हुए है।

var v = Value{ .int = 7 };

विकल्पों पर switch करें

विकल्प के आधार पर अलग रास्ता चुनने के लिए tagged union पर switch का उपयोग करें। हर case एक tag का नाम लेता है और value के उस रूप को संभालता है।

switch (v) { .int => {}, .text => {} }

Payload कैप्चर करें

सक्रिय field की अंदरूनी value निकालने के लिए vertical bars के साथ capture जोड़ें, ताकि वह उस शाखा के अंदर उपयोग के लिए तैयार हो।

switch (v) { .int => |n| useInt(n), .text => |s| useText(s) }

सभी विकल्पों को संभालना अनिवार्य है

Zig हर विकल्प को संभालना आवश्यक बनाता है। कोई case भूल जाने पर compiler आपको आगे नहीं बढ़ने देता, इसलिए कोई विकल्प चुपचाप छूटता नहीं है।

else शाखा

जब आप बाकी सभी विकल्पों को एक ही जगह संभालना चाहते हों, तो else शाखा जोड़ें। यह उन सभी विकल्पों को संभालती है जिन्हें आपने स्पष्ट रूप से सूचीबद्ध नहीं किया है।

switch (v) { .int => |n| useInt(n), else => {} }

switch एक expression है

switch कोई value उत्पन्न कर सकता है, इसलिए हर शाखा कुछ लौटाती है। आप पूरे switch को एक ही चरण में किसी variable को assign कर सकते हैं।

const kind = switch (v) { .int => 1, .text => 2 };

Capture के माध्यम से बदलाव करें

जब payload को copy करके बाहर निकालने के बजाय उसी जगह बदलना हो, तो |*field| से pointer के रूप में capture करें और union के अंदर सीधे बदलाव करें।

switch (v) { .int => |*n| n.* += 1, else => {} }

Type-safe Sum Type

Tagged unions Zig के सुरक्षित sum types हैं: एक value, कई रूप, और ऐसा switch जिसे compiler प्रमाणित करता है कि आपने पूरी तरह संभाला है।

Parsers और States के लिए उत्तम

यह तरीका tokens, AST nodes और state machines के लिए बहुत उपयुक्त है: हर case को एक बार model करें और switch को logic सही जगह भेजने दें।

त्वरित जाँच

साधारण union की तुलना में union(enum) लिखने से आपको क्या मिलता है?

पुनरावलोकन

आपने tagged unions देखे: union(enum) सक्रिय विकल्प पर नज़र रखता है। इसके ऊपर switch करें, bars से payload capture करें, और compiler हर case को अनिवार्य बनाता है। 🧩

शुरुआत निःशुल्क

एआई शिक्षक के साथ Zig सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “Tagged Unions और switch” पाठ निःशुल्क है?

हाँ—“Tagged Unions और switch” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Zig Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Zig Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Tagged Unions और switch” में मैं क्या सीखूँगा?

union variants पर pattern matching करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Zig Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Zig Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Zig Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“Tagged Unions और switch” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Zig Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Zig Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Values के निश्चित Set के लिए Enums
  2. एक में कई Types रखने वाले Unions
  3. Tagged Unions और switch
  4. Enum Methods और Backing Integers
← Zig Academy पर वापस जाएँ