solidity[4]-pure与view剖析

本文详细剖析了Solidity中pure和view关键字的使用,通过代码例子展示它们如何影响智能合约的 gas 消耗。pure函数不读取也不修改区块链状态,而view函数虽然读取状态但不修改,两者都不会消耗gas。这是因为全节点会保存所有信息,view函数可以在本地查询数据,不需要全球节点处理。文章作者为郑建勋,一位区块链和Web工程师。
摘要由CSDN通过智能技术生成

solidity[4]-pure与view剖析

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既然要读取区块链上的值,为什么也不用消耗g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值