Web3 और DApp विकास की मूल बातें · पाठ

चर और डेटा प्रकार

Solidity के मूल डेटा प्रकार (uint, address, bool, bytes) तथा स्मार्ट कॉन्ट्रैक्ट में चर घोषित करने और उपयोग करने का अध्ययन करें।

पाठ 2, कुल 3 में से11 चरण

चर और डेटा प्रकार, CoddyKit पर Web3 और DApp विकास की मूल बातें का एक निःशुल्क पाठ है। यह 3 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Web3 और DApp विकास की मूल बातें सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Web3 और DApp विकास की मूल बातें पाठ्यक्रम में कुल 3 पाठ शामिल हैं।

चर और डेटा प्रकार: मूल बातें

पाठ 2 में आपका स्वागत है! Solidity में, अन्य प्रोग्रामिंग भाषाओं की तरह, जानकारी को संग्रहीत और प्रबंधित करने के लिए हमें कुछ साधनों की आवश्यकता होती है।

यहीं वेरिएबल और डेटा प्रकार उपयोगी होते हैं। किसी भी स्मार्ट कॉन्ट्रैक्ट को बनाने के लिए ये मूलभूत तत्व हैं।

  • वेरिएबल: इन्हें ऐसे कंटेनर समझिए, जिनमें किसी विशिष्ट डेटा का एक भाग रखा जाता है।
  • डेटा प्रकार: यह निर्धारित करते हैं कि कोई वेरिएबल किस प्रकार का डेटा रख सकता है, जैसे संख्याएँ, पाठ या true/false।

पूर्ण संख्याएँ संग्रहीत करना: `uint`

uint डेटा प्रकार का उपयोग अचिह्नित पूर्णांकों को संग्रहीत करने के लिए किया जाता है। ‘अचिह्नित’ का अर्थ है कि इनमें केवल धनात्मक पूर्ण संख्याएँ, जिनमें शून्य भी शामिल है, रखी जा सकती हैं।

  • uint की सीमा uint8 (8 बिट) से लेकर uint256 (256 बिट) तक हो सकती है।
  • यदि आप केवल uint लिखते हैं, तो डिफ़ॉल्ट रूप से uint256 माना जाता है।
  • ये टोकन शेषराशि, गणनाओं या आईडी के लिए बिल्कुल उपयुक्त हैं।

`uint` वेरिएबल का उदाहरण

आइए देखें कि किसी सरल कॉन्ट्रैक्ट में uint वेरिएबल कैसे घोषित और उपयोग किए जाते हैं। ध्यान दें कि इन्हें कॉन्ट्रैक्ट के बाहर से सुलभ बनाने के लिए हम public का उपयोग करते हैं।

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract MyNumbers {
    uint public myFavoriteNumber; // Default uint256
    uint8 public smallCount;     // uint with 8 bits

    constructor() {
        myFavoriteNumber = 42;
        smallCount = 100;
    }

    function getFavoriteNumber() public view returns (uint) {
        return myFavoriteNumber;
    }

    function getSmallCount() public view returns (uint8) {
        return smallCount;
    }
}

सही या गलत: `bool` प्रकार

bool डेटा प्रकार सरल, लेकिन शक्तिशाली होता है। इसमें केवल दो में से एक मान रखा जा सकता है: true या false।

  • बूलियन सशर्त तर्क के लिए आवश्यक होते हैं, जैसे यह जाँचना कि किसी उपयोगकर्ता के पास अनुमति है या कोई प्रक्रिया पूरी हो गई है।
  • यदि स्पष्ट रूप से मान निर्धारित न किया गया हो, तो bool वेरिएबल डिफ़ॉल्ट रूप से false पर आरंभ होता है।

`bool` वेरिएबल का उदाहरण

यहाँ एक कॉन्ट्रैक्ट दिखाया गया है, जो bool वेरिएबल को घोषित और उनमें बदलाव करना प्रदर्शित करता है। हम उनकी प्रारंभिक स्थिति निर्धारित करके बाद में उसे अपडेट कर सकते हैं।

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract MyFlags {
    bool public isActive;  // Default false, set to true in constructor
    bool private isAdmin; // Only accessible within the contract

    constructor() {
        isActive = true;
        isAdmin = false;
    }

    function getIsActive() public view returns (bool) {
        return isActive;
    }

    function setIsAdmin(bool _isAdmin) public {
        isAdmin = _isAdmin;
    }

    function checkAdmin() public view returns (bool) {
        return isAdmin;
    }
}

खातों को संभालना: `address` प्रकार

address डेटा प्रकार ब्लॉकचेन विकास के लिए विशिष्ट है। इसमें 20-बाइट का मान संग्रहीत होता है, जो किसी Ethereum खाते या कॉन्ट्रैक्ट के पते को दर्शाता है।

  • Ethereum पर प्रत्येक उपयोगकर्ता वॉलेट और स्मार्ट कॉन्ट्रैक्ट का एक address होता है।
  • address payable भी होता है, जो ऐसा address है जिस पर Ether प्राप्त किया जा सकता है। इसके बारे में आप आगे और सीखेंगे!
  • स्वामित्व, अनुमतियों और खातों के बीच होने वाली अंतःक्रियाओं को प्रबंधित करने के लिए address प्रकार अत्यंत महत्वपूर्ण हैं।

`address` वेरिएबल का उदाहरण

यह उदाहरण दिखाता है कि कोई कॉन्ट्रैक्ट पते कैसे संग्रहीत और प्राप्त कर सकता है। msg.sender एक विशेष वैश्विक वेरिएबल है, जो हमेशा वर्तमान लेन-देन शुरू करने वाले पते को दर्शाता है।

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract AccountManager {
    address public owner; // Stores the contract deployer's address
    address public lastInteractedUser;

    constructor() {
        owner = msg.sender; // Set owner to the deployer
    }

    function setLastInteractedUser() public {
        lastInteractedUser = msg.sender; // Update with current caller
    }

    function getOwner() public view returns (address) {
        return owner;
    }

    function getLastInteractedUser() public view returns (address) {
        return lastInteractedUser;
    }
}

कच्चा डेटा: `bytes` और `bytesN`

जब आपको बाइट के कच्चे अनुक्रम संग्रहीत करने हों, तब Solidity bytes और bytesN प्रकार उपलब्ध कराता है।

  • bytes: बाइट की गतिशील आकार वाली सारणी। इसका उपयोग तब करें, जब डेटा का आकार निश्चित न हो।
  • bytes1 से bytes32 तक: निश्चित आकार वाली बाइट सारणियाँ, जिनमें N बाइट की सटीक संख्या बताता है, जैसे क्रिप्टोग्राफ़िक हैश के लिए bytes32।
  • इनका उपयोग अक्सर क्रिप्टोग्राफ़िक हैश, मनमाने बाइनरी डेटा या छोटी स्ट्रिंग के लिए किया जाता है, जहाँ गैस की दक्षता महत्वपूर्ण होती है।

`bytes` वेरिएबल का उदाहरण

यहाँ हम bytes32 का उपयोग करके निश्चित आकार वाला हैश और bytes का उपयोग करके बाइट का गतिशील अनुक्रम संग्रहीत करते हैं। हैश के लिए हेक्साडेसिमल लिटरल और बाइट मानों के लिए hex"..." उपसर्ग पर ध्यान दें।

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract DataStorage {
    bytes32 public documentHash; // Fixed 32-byte hash
    bytes public dynamicData;    // Dynamic byte array

    constructor() {
        // Example hash (0x prefixed hex literal)
        documentHash = 0x123456789012345678901234567890123456789012345678901234567890abcd;
        // Example dynamic data (hex string "hello")
        dynamicData = hex"68656c6c6f"; 
    }

    function updateDynamicData(bytes memory _newData) public {
        dynamicData = _newData;
    }

    function getDocumentHash() public view returns (bytes32) {
        return documentHash;
    }

    function getDynamicData() public view returns (bytes memory) {
        return dynamicData;
    }
}

डेटा प्रकार की चुनौती

स्मार्ट कॉन्ट्रैक्ट में दक्षता और सुरक्षा के लिए सही डेटा प्रकार चुनना अत्यंत महत्वपूर्ण है। अपने ज्ञान की जाँच कीजिए!

वेरिएबल और प्रकार: मुख्य बातें

बहुत अच्छा! आपने Solidity में मूलभूत डेटा प्रकारों के बारे में सीखा है:

  • uint: धनात्मक पूर्ण संख्याओं के लिए, जैसे शेषराशि और गणनाएँ।
  • bool: true/false मानों के लिए, जैसे फ़्लैग और शर्तें।
  • address: Ethereum खातों और कॉन्ट्रैक्ट पतों के लिए।
  • bytes/bytesN: कच्चे, बिना व्याख्या किए गए बाइट अनुक्रमों के लिए, जैसे हैश और मनमाना डेटा।

कुशल और सुरक्षित स्मार्ट कॉन्ट्रैक्ट लिखने के लिए सही डेटा प्रकार चुनना बहुत आवश्यक है। अब हम सीखेंगे कि फ़ंक्शन कैसे परिभाषित किए जाते हैं और आपके कॉन्ट्रैक्ट के तर्क के प्रवाह को कैसे नियंत्रित किया जाता है!

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

एआई शिक्षक के साथ Web3 और DApp विकास की मूल बातें सीखें — निःशुल्क

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

पाठ्यक्रम
29
पाठ
105

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

क्या “चर और डेटा प्रकार” पाठ निःशुल्क है?

हाँ — Web3 और DApp विकास की मूल बातें अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “चर और डेटा प्रकार” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Web3 और DApp विकास की मूल बातें पाठ्यक्रम में कुल 3 पाठ शामिल हैं।

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

Solidity के मूल डेटा प्रकार (uint, address, bool, bytes) तथा स्मार्ट कॉन्ट्रैक्ट में चर घोषित करने और उपयोग करने का अध्ययन करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Web3 और DApp विकास की मूल बातें का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Web3 और DApp विकास की मूल बातें शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

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

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

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

क्या मैं इस Web3 और DApp विकास की मूल बातें पाठ में कोड लिख और चला सकता हूँ?

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

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

  1. Solidity का परिचय
  2. चर और डेटा प्रकार
  3. फ़ंक्शन और नियंत्रण संरचनाएँ
← Web3 और DApp विकास की मूल बातें पर वापस जाएँ