Hàm đọc trạng thái công khai
Thuộc phần Nền tảng cơ bản trong hành trình Solidity của Coddy. Bài học 28 trên 53.
Thêm public vào một biến trạng thái sẽ khiến trình biên dịch tạo hàm getter có thể gọi từ bên ngoài hợp đồng. Trình biên dịch không tạo hàm setter. Bên trong hợp đồng, hãy đọc biến bằng chính tên của biến. Tính hiển thị public kiểm soát giao diện, chứ không quyết định dữ liệu lưu trữ trên blockchain có bí mật hay không.
Khai báo biến này ở phạm vi hợp đồng:
uint256 public score;Dùng biến này bên trong hàm main đã cho:
score = 32;
console.log(score);Khai báo uint256 public score tạo một hàm getter (getter) tên là score để các bên gọi bên ngoài sử dụng. Bên trong main, tên trần đọc biến trạng thái. Bạn vẫn cần code của hợp đồng để ghi giá trị vào biến này; public không cho phép bên gọi gán trực tiếp vào vùng lưu trữ.
Biến trạng thái public có hàm getter bên ngoài, chứ không tự động có hàm setter.
Thử thách
DễKhai báo uint256 public total. Gán total bằng amount được cung cấp bên trong main rồi in ra.
Các bài kiểm tra truyền đối số cho main theo thứ tự này: uint256 amount. Mỗi bài kiểm tra bắt đầu với trạng thái hợp đồng mới.
Dùng console.log cho đầu ra được yêu cầu. Chỉ in các giá trị được yêu cầu, mỗi giá trị trên một dòng, không thêm nhãn trừ khi đề bài yêu cầu.
Tự làm thử
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 amount) external {
// Viết lời giải của bạn ở đây.
}
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Nền tảng cơ bản
6Trạng thái hợp đồng
Biến trạng tháiĐọc và ghi trạng tháiHàm đọc trạng thái công khaiHằng sốBộ đếm dùng chungTự luyện tập: Playground Solidity