Solidity 练习:状态变量

2022-12-29 Web3 Solidity

# 一、题目说明

在 Solidity 中有三种变量类型:局部变量、状态变量和全局变量。

让我们从状态变量开始。

状态变量存储在区块链上。因此,您可以将一些数据保存到状态变量中,即使一周后返回,数据仍在那里。

如何声明状态变量?

状态变量在合约内部声明,在函数外部声明。下面是一个例子:

contract MyContract {
    // 这是一个状态变量
    uint public myStateVariable;

    function func() external {
        // 这不是一个状态变量
        uint notStateVariable = 123;
    }
}
1
2
3
4
5
6
7
8
9

# 二、任务列表

  1. 编写一个 external 函数 resetNum,它将状态变量 num 重置为 0。
  2. 编写一个 external view 函数 getNumPlusOne,该函数将返回 num + 1,而不更新状态变量 num。

# 三、解答代码

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

contract StateVariables {
    uint public num;

    function setNum(uint _num) external {
        num = _num;
    }

    function resetNum() external {
        num = 0;
    }

    // What is "view"?
    // "view" tells Solidity that this is a read-only function.
    // It does not make any updates to the blockchain.
    function getNum() external view returns (uint) {
        return num;
    }

    function getNumPlusOne() external view returns (uint) {
        return num + 1;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 四、参考资料

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