Sağlamlık - Değişken Kapsam
Yerel değişkenlerin kapsamı, tanımlandıkları işlevle sınırlıdır, ancak Durum değişkenlerinin üç tür kapsamı olabilir.
Public- Genel durum değişkenlerine dahili olarak ve mesajlar yoluyla erişilebilir. Bir genel durum değişkeni için, bir otomatik alıcı işlevi oluşturulur.
Internal - Dahili durum değişkenlerine sadece mevcut sözleşmeden veya ondan kaynaklanan sözleşmeden bu kullanılmadan dahili olarak erişilebilir.
Private - Özel durum değişkenlerine, türetilen sözleşmede değil, sadece mevcut sözleşmeden dahili olarak erişilebilir.
Misal
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
}
}