संक्रांति - संविदा

सॉलिडिटी में अनुबंध C ++ में क्लास के समान है। एक अनुबंध में निम्नलिखित गुण हैं।

  • Constructor - कंस्ट्रक्टर कीवर्ड के साथ घोषित एक विशेष फ़ंक्शन जिसे अनुबंध के अनुसार एक बार निष्पादित किया जाएगा और जब अनुबंध बनाया जाता है तो इसे लागू किया जाता है।

  • State Variables - अनुबंध की स्थिति को संग्रहीत करने के लिए प्रति अनुबंध चर।

  • Functions - प्रति अनुबंध के कार्य जो एक अनुबंध की स्थिति को बदलने के लिए राज्य चर को संशोधित कर सकते हैं।

दृश्यता क्वांटिफ़ायर

एक अनुबंध के कार्यों / राज्य चर के लिए विभिन्न दृश्यता क्वांटिफायर निम्नलिखित हैं।

  • external- बाहरी कार्यों को अन्य अनुबंधों द्वारा बुलाया जाता है। उनका उपयोग आंतरिक कॉल के लिए नहीं किया जा सकता है। अनुबंध के भीतर बाहरी फ़ंक्शन को कॉल करने के लिए यह .function_name () कॉल आवश्यक है। राज्य चर को बाहरी के रूप में चिह्नित नहीं किया जा सकता है।

  • public- सार्वजनिक कार्यों / चर को बाहरी और आंतरिक दोनों तरह से उपयोग किया जा सकता है। सार्वजनिक राज्य चर के लिए, सॉलिडिटी स्वचालित रूप से एक गेटटर फ़ंक्शन बनाता है।

  • internal - आंतरिक कार्य / चर केवल आंतरिक रूप से या व्युत्पन्न अनुबंध द्वारा उपयोग किए जा सकते हैं।

  • private - निजी कार्य / चर केवल आंतरिक रूप से उपयोग किए जा सकते हैं और व्युत्पन्न अनुबंध द्वारा भी नहीं।

उदाहरण

pragma solidity ^0.5.0;

contract C {
   //private state variable
   uint private data;
   
   //public state variable
   uint public info;

   //constructor
   constructor() public {
      info = 10;
   }
   //private function
   function increment(uint a) private pure returns(uint) { return a + 1; }
   
   //public function
   function updateData(uint a) public { data = a; }
   function getData() public view returns(uint) { return data; }
   function compute(uint a, uint b) internal pure returns (uint) { return a + b; }
}
//External Contract
contract D {
   function readData() public returns(uint) {
      C c = new C();
      c.updateData(7);         
      return c.getData();
   }
}
//Derived Contract
contract E is C {
   uint private result;
   C private c;
   
   constructor() public {
      c = new C();
   }  
   function getComputedResult() public {      
      result = compute(3, 5); 
   }
   function getResult() public view returns(uint) { return result; }
   function getData() public view returns(uint) { return c.info(); }
}

सॉलिडिटी फर्स्ट एप्लीकेशन चैप्टर में दिए गए चरणों का उपयोग करके उपरोक्त प्रोग्राम को चलाएं । संविदा के विभिन्न तरीके चलाएं। E.getComputedResult () के लिए E.getResult () शो के बाद -

उत्पादन

0: uint256: 8