温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

solidity智能合约[4]-pure与view剖析

发布时间:2020-07-22 20:06:44 来源:网络 阅读:790 作者:jonson_jackson 栏目:开发技术

pure与view代码例子

如下的一段solidity智能合约中,只要有了pure与view修饰符的函数,那么调用函数就不会消耗gas。
而没有pure与view修饰的函数,如下面的change就会消耗gas。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
pragma solidity ^0.4.23;
contract HelloWorld{
   string public name = "jonson";

   function getName() public view returns(string){
       return name;
   }

   function changeName(string _name) public{
       name = _name;

   }

   function testPure(uint a,uint b) public pure returns(uint){
       return a+b;


   }
}

pure与view使用场景

  • view: 可以自由调用,因为它只是“查看”区块链的状态而不改变它

  • pure: 也可以自由调用,既不读取也不写入区块链

pure与view原理

  • pure:不读取更不修改区块上的变量,使用本机的CPU资源计算我们的函数。所以不消耗任何的资源这是很容易的理解的。

  • view: 但是view既然要读取区块链上的值,为什么也不用消耗gas呢?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI