Menu
CoddyTech

纯函数

本课属于 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,因为它会使用调试控制台;辅助函数本身不包含日志记录,也不访问状态。

纯函数不会读取或写入合约状态。

challenge icon

挑战

简单

创建一个名为 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 {
        // 在这里写下你的答案。
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Solidity 在线编辑器