视图函数(View Functions)
当承诺不修改状态时,函数可以声明view
。
下面的语句被认为是修改状态:
- 写入状态变量。
- 发生事件。
- 创建其他合约。
- 使用自毁
selfdestruct
。 - 通过调用发送Ether。
- 调用任何未标记
view
或pure
的函数。 - 使用低级调用(low-level calls)。
- 使用包含某些操作码的内联程序集。
pragma solidity ^0.4.16;
contract C {
function f(uint a, uint b) public view returns (uint) {
return a * (b + 42) + now;
}
}
注解 |
---|
constant 是view 的别名 |
注解 |
---|
Getter方法被标记为view |
警告 |
---|
编译器还没有强制要求view 方法不修改状态 |