Skip to content

Latest commit

 

History

History
64 lines (53 loc) · 1.74 KB

File metadata and controls

64 lines (53 loc) · 1.74 KB

101-08 变量初始值

变量初始值

在Solidity中,声明但没赋值的变量都有它的初始值或默认值。

值类型初始值

  • boolean: false
  • string :""
  • int : 0
  • uint : 0
  • enum : 枚举中的第一个元素
  • address : 0x0000000000000000000000000000000000000000(或address(0))
  • function
    • internal : 空白函数
    • external : 空白函数

可以使用public变量的getter函数验证上面写的初始值是否正确

contract cVariable{
    bool public _boll; // false
    string public _string; //""
    int public _int; // 0
    uint public _uint; // 0
    address public _address; // 0x0000000000000000000000000000000000000000

    enum ActionSet { Buy, Hold, Sell}
    ActionSet public _enum; // 第1个内容Buy的索引0

    function fi() internal{} // 空白函数
    function fe() external{} // 空白函数 
}

引用类型初始值

  • 映射mapping:所有元素都为其默认值的mapping
  • 结构体struct:所有成员设为其默认值的结构体
  • 数组array
    • 动态数组:[]
    • 定长数组:所有成员设为其默认值的定长数组

依然可以用public变量的getter函数验证上面写的初始值是否正确

uint[8] public _staticArray; // 所有成员设为其默认值的静态数组[0,0,0,0,0,0,0,0]

uint[] public _dynamicArray; // `[]`

mapping(uint => address) public _mapping; // 所有元素都为其默认值的mapping

// 所有成员设为其默认值的结构体 0, 0
struct Student{
    uint256 id;
    uint256 score; 
}
Student public student;

delete操作符

delete a会让变量a的值变为初始值

bool public _bool2 = true; 
function d() external {
    delete _bool2; // delete 会让_bool2变为默认值,false
}