纯函数
本课属于 Coddy Solidity 学习旅程的“基础知识”单元。第 23 课,共 53 课。
纯函数根据其参数和局部值进行计算,不会读取或写入合约状态。这样一来,计算过程就容易理解。将函数标记为纯函数,是一个由编译器检查的承诺,而不是要求擦除数据。
在合约中定义这个辅助函数:
function perimeter(uint256 w, uint256 h) internal pure returns (uint256) {
return 2 * (w + h);
}在提供的 main 函数中使用它:
console.log(perimeter(8, 3));辅助函数只需要宽度和高度。它返回两者之和的两倍,因此可以是纯函数。主包装函数仍然是 view,因为它会使用调试控制台;辅助函数本身不包含日志记录,也不访问状态。
纯函数不会读取或写入合约状态。
挑战
简单创建一个名为 triple 的纯内部辅助函数,返回其 uint256 输入值的三倍。在 main 中打印 triple(value)。
测试会按以下顺序向 main 传递参数:uint256 value。每个测试都会从全新的合约状态开始。
使用 console.log 输出所需内容。只打印所需的值,每行一个,除非任务另有要求,否则不要添加额外标签。
亲手试试
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 value) external view {
// 在这里写下你的答案。
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Solidity 在线编辑器