纯函数(Pure Functions)
当承诺不读取或修改状态时,函数可以声明为pure。
除了上面解释的修改状态语句的列表之外,以下语句被认为是读取状态:
- 从状态变量读取。
- 访问
this.balance或<address>.balance。 - 访问
block,tx,msg中的任何成员,除了msg.sig和msg.data之外。 - 调用任何未标记为
pure的函数。 - 使用包含某些操作码的内联程序集。
pragma solidity ^0.4.16;
contract C {
function f(uint a, uint b) public pure returns (uint) {
return a * (b + 42);
}
}
| 警告 |
|---|
编译器没有强制要求pure方法不读取状态 |

本文探讨了智能合约中纯函数的概念及其限制条件。纯函数承诺不修改或读取状态,但编译器并未强制执行这一规则。文章还列举了被视为读取状态的操作。
2208

被折叠的 条评论
为什么被折叠?



