Learn Solidity 7 View and Pure Modifers
view 就是限定不能修改状态,用于直接返回状态。pure 就是用于返回计算结果,不能修改状态。
- 基本例子
// SPDX-License-Identifier: MIT
pragma solidity >=0.7.0 <0.9.0;
contract MyContract {
uint256 value;
// 加了view才能显示,view的本质确保我们不能够修改值,只读
function getValue() external view returns (uint256) {
// eth call
// 因为view,这里不能够修改,只能返回皇台
// value = value + 2;
return value;
}
function getNewValue() external pure returns (uint256) {
// eth call
// pure表示不会修改状态,只返回计算值
return 3 + 3;
}
function setValue(uint256 _value) external {
// eth send transaction
value = _value;
}
}
- 练习
// SPDX-License-Identifier: MIT
pragma solidity >=0.7.0 <0.9.0;
contract MyContract {
uint256 value;
function multiply() external pure returns (uint256) {
return 3 * 7;
}
function valuePlusThree() external view returns (uint256) {
return value + 3;
}
}