Solidity 练习:View 和 Pure 函数

2022-12-29 Web3 Solidity

# 一、题目说明

不向区块链写入任何内容的函数可以声明为 view 或 pure。

view 和 pure 的区别是什么?

  • view 函数可以读取状态变量和全局变量。
  • pure 函数不可以读取状态变量和全局变量。

# 二、任务列表

  1. 编写函数 addToNum,输入 uint 类型的 x,返回 num + x。必须声明为 external,适当选择 view 或者 pure。
  2. 编写函数 add,输入 uint 类型的 x 和 y,返回 x + y,必须声明为 external,适当选择 view 或者 pure。

# 三、解答代码

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

contract ViewAndPureFunctions {
    uint public num;

    // 这是一个 view 函数,因为读取了状态变量 num
    function viewFunc() external view returns (uint) {
        return num;
    }

    // 这是一个 pure 函数,它没有读取状态或全局变量
    function pureFunc() external pure returns (uint) {
        return 1;
    }

    function addToNum(uint x) external view returns (uint) {
        return num + x;
    }

    function add(uint x, uint y) external pure returns (uint) {
        return x + y;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 四、参考资料

Last Updated: 2023-01-28 4:31:25