在Solidity中constant、view、pure三个函数修饰词的作用是告诉编译器,函数不改变/不读取状态变量,这样函数执行就可以不消耗gas了(是完全不消耗!),因为不需要矿工来验证。所以用好这几个关键词很重要,不言而喻,省gas就是省钱!
这三个关键词有什么区别和联系,简单来说,在Solidity v4.17之前,只有constant,后来有人嫌constant这个词本身代表变量中的常量,不适合用来修饰函数,所以将constant拆成了view和pure。view的作用和constant一模一样,可以读取状态变量但是不能改;pure则更为严格,pure修饰的函数不能改也不能读状态变量,否则编译通不过。
测试代码:
pragma solidity ^0.4.21;
contract constantViewPure{
string name;
uint public age;
function constantViewPure() public{
name = "liushiming";
age = 29;
}
function getAgeByConstant() public constant
本文探讨了Solidity中constant、view和pure关键字的差异和联系。这些修饰词用于表明函数不会修改或读取状态变量,从而节省gas成本。在v4.17之前,只有constant,后来被view和pure取代。view允许读取状态变量但不允许修改,而pure则禁止读写状态变量。
订阅专栏 解锁全文
2047

被折叠的 条评论
为什么被折叠?



