Solidity View(视图)函数
View(视图)函数不会修改状态。如果函数中存在以下语句,则被视为修改状态,编译器将抛出警告。
修改状态变量。
触发事件。
创建合约。
使用selfdestruct。
发送以太。
调用任何不是视图函数或纯函数的函数
使用底层调用
使用包含某些操作码的内联程序集。
Getter方法是默认的视图函数。声明视图函数,可以在函数声明里,添加
view关键字。
示例
pragma solidity ^0.5.0;
contract Test {
function getResult() public view returns(uint product, uint sum){
uint a = 1; // 局部变量
uint b = 2;
product = a * b;
sum = a + b;
}
}
可以参考Solidity – 第一个程序中的步骤,运行上述程序。
输出
0: uint256: product 2
1: uint256: sum 3