Solidity 语言有两类和状态读写有关的函数类型,一类是 view 函数(也称为视图函数),另一类是 pure 函数(也称为纯函数);
相同点是 都是只读函数;
不同点是 view 函数不修改状态,pure 函数即不修改状态也不读取状态。
看下代码会很清晰明了
pragma solidity ^0.8.7;
contract ViewAndPure{
uint public num;
function viewFunction() external view returns (uint){
return num;
}
function pureFunction() external pure returns (uint){
return 1;
}
function addToNum(uint x) external view returns (uint){
return num + x;
}
function viewFunction(uint x, uint y) external pure returns (uint){
return x+y;
}
}