Độ vững chắc - Phạm vi thay đổi
Phạm vi của các biến cục bộ được giới hạn trong chức năng mà chúng được định nghĩa nhưng các biến trạng thái có thể có ba loại phạm vi.
Public- Các biến trạng thái công khai có thể được truy cập nội bộ cũng như thông qua tin nhắn. Đối với biến trạng thái công khai, một hàm getter tự động được tạo.
Internal - Các biến trạng thái bên trong chỉ có thể được truy cập nội bộ từ hợp đồng hiện tại hoặc hợp đồng bắt nguồn từ nó mà không cần sử dụng nó.
Private - Các biến trạng thái riêng chỉ có thể được truy cập nội bộ từ hợp đồng hiện tại mà chúng được xác định không có trong hợp đồng dẫn xuất từ nó.
Thí dụ
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
}
}