solidity: view和pure关键字

Solidity 中的 pure 和 view 是函数修饰符关键字,用于声明函数的属性和行为。它们的作用如下:

  1. pure 关键字:用于声明函数是纯函数,即函数不读取或修改合约的状态变量,并且不与外部合约进行交互。纯函数只根据输入参数计算结果,并返回一个值。

    • 纯函数不会改变合约状态,也不会发送交易或调用其他合约。
    • 纯函数内部不能访问 msgblock 和 tx 这些全局变量。
    • 纯函数在不同的块上执行时,给定相同的输入参数,总是返回相同的结果。

    使用 pure 关键字可以提供以下好处:

    • 在编译时进行静态检查,确保函数不会修改状态或与外部合约交互。
    • 提供更好的可读性和可理解性,明确函数的行为和约束。
    • 允许 Solidity 编译器进行更多的优化,提高代码执行效率。

    示例使用 pure 关键字的函数定义:

    solidity

    Copy
    function add(uint256 a, uint256 b) public pure returns (uint256) {
        return a + b;
    }
    ```
    
    
  2. view 关键字:用于声明函数是视图函数,即函数不修改合约的状态变量,但可以读取合约的状态。视图函数用于查询合约状态或计算结果,而不会改变合约的状态。

    • 视图函数不会改变合约状态,也不会发送交易或调用其他合约。
    • 视图函数可以读取合约的状态变量和其他视图函数的返回值。
    • 视图函数内部不能修改状态变量的值。

    使用 view 关键字可以提供以下好处:

    • 在编译时进行静态检查,确保函数不会修改状态。
    • 允许在函数中访问合约的状态,并进行相应的计算和查询操作。
    • 允许 Solidity 编译器进行更多的优化。

    示例使用 view 关键字的函数定义:

    solidity

    Copy
    function getBalance(address account) public view returns (uint256) {
        return balances[account];
    }
    ```
    
    

总结起来,pure 和 view 关键字用于在 Solidity 中声明函数的属性,以提供更好的代码可读性、约束和优化。pure 用于纯函数,而 view 用于视图函数。这些修饰符有助于更清晰地定义和理解函数的行为和用途。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值