Ở trong Solidity có bốn loại visibility, giúp định nghĩa phạm vi mà biến hay hàm1 có thể được truy cập. Cụ thể:
- 🌎 public: có thể truy cập được từ cả bên trong hợp đồng và từ các hợp đồng bên ngoài.
- 🏠 private: chỉ có thể truy cập được bên trong hợp đồng hiện tại. Nó không ẩn giá trị đi mà chỉ giới hạn quyền truy cập vào giá trị đó.
- 🌲 external: chỉ sử dụng cho hàm (function). Chỉ có thể được nhìn thấy (gọi) từ bên ngoài hợp đồng.
- 🏠🏠 internal: có thể truy cập được bởi hợp đồng hiện tại và bất kỳ hợp đồng nào kế thừa từ nó.
Ví dụ minh họa:
pragma solidity ^0.8.0;
contract VisibilitySpecifierExample {
uint private privateVariable;
uint internal internalVariable;
uint public publicVariable;
// Rest of the contract code...
}Lưu ý:
- Một
publicstate variable sẽ được Solidity tạo một hàm getter một cách ngầm định. internallà mặc định đối với các state variable.externalkhông thể được sử dụng cho state variable.
Footnotes
-
Xem thêm Solidity - Function. ↩