公共状态变量读取器
本课属于 Coddy Solidity 学习旅程的“基础知识”单元。第 28 课,共 53 课。
将 public 添加到状态变量后,编译器会生成一个可从合约外部调用的 getter 函数。它不会生成 setter 函数。在合约内部,直接通过变量名读取变量。public 可见性控制的是接口,而不是区块链存储是否保密。
在合约作用域中声明:
uint256 public score;在提供的 main 函数中使用它:
score = 32;
console.log(score);声明 uint256 public score 会为外部调用方创建一个名为 score 的 getter。在 main 中,直接使用名称即可读取状态变量。写入该变量仍需要合约代码,public 并不允许调用方直接赋值给存储变量。
public 状态变量会获得一个外部 getter,但不会自动获得 setter。
挑战
简单声明 uint256 public total。在 main 中将 total 设置为提供的 amount,并打印它。
测试会按以下顺序向 main 传递参数:uint256 amount。每项测试都会从全新的合约状态开始。
使用 console.log 输出要求的内容。每行只打印要求的值,不要添加额外标签,除非任务有明确要求。
亲手试试
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 amount) external {
// 在这里写下你的答案。
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Solidity 在线编辑器