8. 变量初始值
WTF Solidity极简入门: 8. 变量初始值
我最近在重新学 Solidity,巩固一下细节,也写一个“WTF Solidity极简入门”,供小白们使用(编程大佬可以另找教程),每周更新 1-3 讲。
所有代码和教程开源在 github: github.com/AmazingAng/WTF-Solidity
变量初始值
在Solidity
中,声明但没赋值的变量都有它的初始值或默认值。这一讲,我们将介绍常用变量的初始值。
值类型初始值
boolean
:false
string
:""
int
:0
uint
:0
enum
: 枚举中的第一个元素address
:0x0000000000000000000000000000000000000000
(或address(0)
)function
internal
: 空白函数external
: 空白函数
可以用public
变量的getter
函数验证上面写的初始值是否正确:
1 | bool public _bool; // false |
引用类型初始值
- 映射
mapping
: 所有元素都为其默认值的mapping
- 结构体
struct
: 所有成员设为其默认值的结构体 - 数组
array
- 动态数组:
[]
- 静态数组(定长): 所有成员设为其默认值的静态数组
- 动态数组:
可以用public
变量的getter
函数验证上面写的初始值是否正确:
1 | // Reference Types |
delete
操作符
delete a
会让变量a
的值变为初始值。
1 | // delete操作符 |
在remix上验证
-
部署合约查看值类型、引用类型的初始值
-
值类型、引用类型
delete
操作后的默认值
总结
这一讲,我们介绍了Solidity
中变量的初始值。变量被声明但没有赋值的时候,它的值默认为初始值。不同类型的变量初始值不同,delete
操作符可以删除一个变量的值并代替为初始值。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小奏!