Solidity के साथ ब्लॉकचेन स्मार्ट कॉन्ट्रैक्ट · पाठ

स्ट्रक्ट और एनम

कस्टम struct प्रकारों का उपयोग करके Solidity में जटिल डेटा का मॉडल बनाएँ और enum से अवस्थाओं के निश्चित समूह दर्शाएँ।

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

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

Custom types क्यों?

uint और address जैसे primitive types के अलावा Solidity आपको अपने types define करने की सुविधा देती है। Structs संबंधित fields को समूहित करते हैं और enums named states के एक निश्चित set को दर्शाते हैं।

Struct घोषित करना

Struct कई variables को एक नाम के अंतर्गत जोड़ता है, इसलिए यह user या order जैसी वास्तविक entities का model बनाने के लिए उपयोगी है।

struct User {
    string name;
    uint age;
    address wallet;
}

Struct instances बनाना

आप positional arguments द्वारा या प्रत्येक field का नाम देकर struct बना सकते हैं। Named arguments अधिक स्पष्ट होते हैं और errors की संभावना कम करते हैं।

User memory u = User({
    name: "Alice",
    age: 30,
    wallet: msg.sender
});

Storage बनाम memory में structs

Storage में रखा struct chain पर स्थायी रहता है; memory में रखा struct अस्थायी copy होता है। किसी storage struct को memory variable में assign करने पर उसकी copy बनती है, इसलिए बदलाव वापस storage में नहीं लिखे जाते।

Struct fields को update करना

स्थायी data को बदलने के लिए storage reference के साथ काम करें और उसके fields को सीधे assign करें।

User storage u = users[msg.sender];
u.age = 31;

Mappings के अंदर structs

Structs तब विशेष रूप से उपयोगी होते हैं जब उन्हें address या id से keyed mapping में store किया जाता है, जिससे प्रत्येक user का अपना record बन जाता है।

mapping(address => User) public users;
users[msg.sender] = User("Bob", 25, msg.sender);

Enum घोषित करना

Enum named options का एक छोटा set define करता है। State दर्शाने के लिए raw numbers की तुलना में यह readability बेहतर बनाता है।

enum Status { Pending, Shipped, Delivered, Cancelled }

Enum values का उपयोग

Enum members को uint के रूप में store किया जाता है और उनकी शुरुआत 0 से होती है। आप उन्हें name द्वारा compare और assign करते हैं, जिससे contract logic स्वयं स्पष्ट हो जाता है।

Status public status = Status.Pending;

function ship() public {
    status = Status.Shipped;
}

State machines में enums

Enums state machine का model बनाने के लिए आदर्श हैं। require से transitions को सुरक्षित करें, ताकि कोई order केवल valid अगली state में ही जा सके।

function deliver() public {
    require(status == Status.Shipped, "Not shipped yet");
    status = Status.Delivered;
}

Structs और enums को मिलाना

प्रत्येक record की state track करने के लिए struct के अंदर enum field रखें। उदाहरण के लिए, हर order struct में एक Status store करें, ताकि प्रत्येक order अपना जीवनचक्र track कर सके।

Gas संबंधी विचार

हर struct field एक storage slot होती है और storage में लिखना महँगा होता है। छोटे types को साथ pack करने के लिए fields का क्रम तय करें और fixed states के लिए strings के बजाय enums (एक byte की सीमा) का उपयोग करके gas बचाएँ।

त्वरित जाँच

अपने structs और enums संबंधी ज्ञान की जाँच करें।

पुनरावलोकन

आपने Solidity के custom types सीखे:

  • Structs संबंधित fields को समूहित करते हैं और अक्सर mappings में store किए जाते हैं
  • Structs को copy या update करते समय storage और memory का ध्यान रखें
  • Enums fixed states को integers के रूप में model करते हैं और state machines को संचालित करते हैं
  • Gas बचाने के लिए इन्हें मिलाएँ और fields को pack करें

Custom types contracts को अधिक अभिव्यंजक और maintainable बनाते हैं।

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

एआई शिक्षक के साथ Solidity के साथ ब्लॉकचेन स्मार्ट कॉन्ट्रैक्ट सीखें — निःशुल्क

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

पाठ्यक्रम
12
पाठ
48

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

क्या “स्ट्रक्ट और एनम” पाठ निःशुल्क है?

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

“स्ट्रक्ट और एनम” में मैं क्या सीखूँगा?

कस्टम struct प्रकारों का उपयोग करके Solidity में जटिल डेटा का मॉडल बनाएँ और enum से अवस्थाओं के निश्चित समूह दर्शाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Solidity के साथ ब्लॉकचेन स्मार्ट कॉन्ट्रैक्ट का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Solidity के साथ ब्लॉकचेन स्मार्ट कॉन्ट्रैक्ट शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

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

“स्ट्रक्ट और एनम” पाठ पूरा करने में कितना समय लगता है?

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

क्या मैं इस Solidity के साथ ब्लॉकचेन स्मार्ट कॉन्ट्रैक्ट पाठ में कोड लिख और चला सकता हूँ?

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

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

  1. Solidity डेटा प्रकार और चर
  2. नियंत्रण संरचनाएँ और लूप
  3. फ़ंक्शन और दृश्यता संशोधक
  4. स्ट्रक्ट और एनम
← Solidity के साथ ब्लॉकचेन स्मार्ट कॉन्ट्रैक्ट पर वापस जाएँ