Soliditas - Lingkup Variabel
Cakupan variabel lokal terbatas pada fungsi di mana mereka didefinisikan, tetapi variabel Status dapat memiliki tiga jenis cakupan.
Public- Variabel status publik dapat diakses secara internal maupun melalui pesan. Untuk variabel status publik, fungsi pengambil otomatis dibuat.
Internal - Variabel status internal hanya dapat diakses secara internal dari kontrak saat ini atau kontrak yang diturunkan darinya tanpa menggunakan ini.
Private - Variabel status privat hanya dapat diakses secara internal dari kontrak saat ini, variabel tersebut didefinisikan bukan dalam kontrak turunan darinya.
Contoh
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
}
}