सॉलिडिटी - लाइब्रेरी
लाइब्रेरी कॉन्ट्रैक्ट के समान हैं, लेकिन मुख्य रूप से पुन: उपयोग के लिए अभिप्रेत हैं। लाइब्रेरी में ऐसे कार्य होते हैं जिन्हें अन्य अनुबंध कह सकते हैं। लाइब्रेरी के उपयोग पर सॉलिडिटी पर कुछ प्रतिबंध हैं। सॉलिडिटी लाइब्रेरी की प्रमुख विशेषताएं निम्नलिखित हैं।
यदि वे राज्य को संशोधित नहीं करते हैं तो लाइब्रेरी फ़ंक्शंस को सीधे बुलाया जा सकता है। इसका मतलब है कि शुद्ध या दृश्य कार्य केवल पुस्तकालय के बाहर से बुलाए जा सकते हैं।
लाइब्रेरी को तबाह नहीं किया जा सकता क्योंकि इसे स्टेटलेस माना जाता है।
एक लाइब्रेरी में स्टेट वैरिएबल नहीं हो सकते।
एक पुस्तकालय किसी भी तत्व को विरासत में नहीं दे सकता है।
एक पुस्तकालय विरासत में नहीं मिल सकता है।
उदाहरण
एक कोड सोलिडिटी में कैसे काम करता है, यह समझने के लिए निम्न कोड का प्रयास करें।
pragma solidity ^0.5.0;
library Search {
function indexOf(uint[] storage self, uint value) public view returns (uint) {
for (uint i = 0; i < self.length; i++) if (self[i] == value) return i;
return uint(-1);
}
}
contract Test {
uint[] data;
constructor() public {
data.push(1);
data.push(2);
data.push(3);
data.push(4);
data.push(5);
}
function isValuePresent() external view returns(uint){
uint value = 4;
//search if value is present in the array using Library function
uint index = Search.indexOf(data, value);
return index;
}
}
सॉलिडिटी फर्स्ट एप्लीकेशन चैप्टर में दिए गए चरणों का उपयोग करके उपरोक्त प्रोग्राम को चलाएं ।
Note - तैनाती बटन पर क्लिक करने से पहले ड्रॉपडाउन से टेस्ट का चयन करें।
उत्पादन
0: uint256: 3
के लिए उपयोग कर रहा है
निर्देश using A for B; पुस्तकालय ए के पुस्तकालय कार्यों को दिए गए प्रकार बी में संलग्न करने के लिए इस्तेमाल किया जा सकता है। इन कार्यों में कॉलर प्रकार का उपयोग उनके पहले पैरामीटर (स्वयं का उपयोग करके पहचाना गया) के रूप में किया जाएगा।
उदाहरण
एक कोड सोलिडिटी में कैसे काम करता है, यह समझने के लिए निम्न कोड का प्रयास करें।
pragma solidity ^0.5.0;
library Search {
function indexOf(uint[] storage self, uint value) public view returns (uint) {
for (uint i = 0; i < self.length; i++)if (self[i] == value) return i;
return uint(-1);
}
}
contract Test {
using Search for uint[];
uint[] data;
constructor() public {
data.push(1);
data.push(2);
data.push(3);
data.push(4);
data.push(5);
}
function isValuePresent() external view returns(uint){
uint value = 4;
//Now data is representing the Library
uint index = data.indexOf(value);
return index;
}
}
सॉलिडिटी फर्स्ट एप्लीकेशन चैप्टर में दिए गए चरणों का उपयोग करके उपरोक्त प्रोग्राम को चलाएं ।
Note - तैनाती बटन पर क्लिक करने से पहले ड्रॉपडाउन से टेस्ट का चयन करें।
उत्पादन
0: uint256: 3