مشخصات مقاله
-
0.0
-
925
-
0
-
0
آشنایی با scope یا حوزه تعریف متغیرها در سالیدیتی
دامنه متغیرهای محلی محدود به تابعی است که در آن تعریف شدهاند، اما State Variables میتوانند سه نوع دامنه داشته باشند.
Public
متغیرهای حالت عمومی را میتوان بهصورت داخلی و همچنین از طریق پیامها در دسترس قرارداد. برای متغیر حالت public، یک تابع دریافتکننده بهصورت خودکار تولید میشود.
Internal
متغیرهای حالت internal فقط درون قرارداد در دسترس هستند.
Private
متغیرهای حالت خصوصی فقط بهصورت داخلی از قرارداد فعلی قابلدسترسی هستند و در قرارداد مشتق شده از آن قابلاستفاده نمیباشند.
pragma solidity ^0.5.0;
contract C {
uint public data = 30;
uint internal iData= 10;
function x() public returns (uint) {
data = 3; // internal access
return data;
}
}
contract Caller {
C c = new C();
function f() public view returns (uint) {
return c.data(); //external access
}
}
contract D is C {
function y() public returns (uint) {
iData = 3; // internal access
return iData;
}
function getResult() public view returns(uint){
uint a = 1; // local variable
uint b = 2;
uint result = a + b;
return storedData; //access the state variable
}
}