【从0学习Solidity】8. 变量初始值
- 博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。
- 关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!
- 本文收录于 不写代码没饭吃 的学习汇报系列,大家有兴趣的可以看一看。
- 欢迎访问我们的微信公众号:不写代码没饭吃,获取更多精彩内容、实用技巧、行业资讯等。您关注的是我们前进的动力!
变量初始值
在solidity
中,声明但没赋值的变量都有它的初始值或默认值。这一讲,我们将介绍常用变量的初始值。
值类型初始值
-
boolean
:false
-
string
:""
-
int
:0
-
uint
:0
-
enum
: 枚举中的第一个元素 -
address
:0x0000000000000000000000000000000000000000
(或address(0)
) function
-
internal
: 空白函数 -
external
: 空白函数
可以用public
变量的getter
函数验证上面写的初始值是否正确:
bool public _bool; // 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{} // internal空白函数
function fe() external{} // external空白函数
引用类型初始值
- 映射
mapping
: 所有元素都为其默认值的mapping
- 结构体
struct
: 所有成员设为其默认值的结构体 - 数组
array
- 动态数组:
[]
- 静态数组(定长): 所有成员设为其默认值的静态数组
可以用public
变量的getter
函数验证上面写的初始值是否正确:
// Reference Types
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
的值变为初始值。
// delete操作符
bool public _bool2 = true;
function d() external {
delete _bool2; // delete 会让_bool2变为默认值,false
}
在remix上验证
- 部署合约查看值类型、引用类型的初始值
- 值类型、引用类型delete操作后的默认值
总结
这一讲,我们介绍了solidity
中变量的初始值。变量被声明但没有赋值的时候,它的值默认为初始值。不同类型的变量初始值不同,delete
操作符可以删除一个变量的值并代替为初始值。
如果这份博客对大家有帮助,希望各位给作者一个免费的点赞
标签:Solidity,变量,初始值,uint,默认值,public,delete From: https://blog.51cto.com/u_15344421/7625406