solidity函数中pure、view、constant的用法
solidity函数的格式为:function 函数名(参数) public|private|internal|external pure|view|constant 无返回值|returns (返回值类型)
在Solidity中constant,view,pure三个函数修饰词的作用是告诉编译器,函数不改变/不读取状态变量,这样函数执行就可以不消耗gas了(是完全不消耗!),因为不需要矿工来验证。
在Solidity v4.17之前,只有constant,后来有人嫌constant这个词本身代表变量中的常量,不适合用来修饰函数,所以将constant拆成了view和pure。
view的作用和constant一模一样,可以读取状态变量但是不能改;
pure则更为严格,pure修饰的函数不能改也不能读状态变量,否则编译通不过。
案列如下:
pragma solidity ^0.4.18;
contract HelloWorld {
uint age = 45;
uint weight = 56;
uint height = 180;
function test() public pure returns (string) {
return "HelloWorld!";
}
function getAge() public returns (uint) {
return age;
}
<