Skip to content

变量默认值

Solidity 中,变量在声明时会有一个基于其类型的默认值。没有 undefinednull 的概念。

分类

以下是 Solidity 常用变量类型的默认值:

  • 布尔型(bool):默认值为 false
  • 整型(uint/int):默认值为 0`。
  • 地址(address):默认值为 0x0000000000000000000000000000000000000000
  • 枚举(enum):默认值为枚举列表的第一个值。
  • 字符串(string):默认值为空字符串(“”)。
  • 数组(array):默认值为长度为0的空数组。

示例

以下是一个简单的 Solidity 程序示例,其中展示了变量的默认值:

solidity
pragma solidity ^0.8.0;

contract MyContract {
    bool public myBool; // 默认值为false
    uint public myUint; //默认值为0
    address public myAddress; //默认值为0x0000000000000000000000000000000000000000
    enum MyEnum {FIRST, SECOND, THIRD} //默认值为FIRST。
    MyEnum public myEnum; 
    string public myString; //默认值为空字符串。
    uint[] public myArray; //默认值为长度为0的空数组。

    function initialize() public {
        myBool = true;
        myUint = 42;
        myAddress = 0x1234567890123456789012345678901234567890;
        myEnum = MyEnum.SECOND;
        myString = "Hello, World!";
        myArray.push(1);
        myArray.push(2);
        myArray.push(3);
    }
}

在这个示例程序中,我们定义了一个名为 MyContract 的合约,并声明了不同类型的变量,展示了它们的默认值以及如何对这些变量赋值。

运行 initialize 函数后,这些变量将被分别赋予不同的值。