專業(yè)的贛州網(wǎng)站建設(shè)武漢seo網(wǎng)站推廣
Solidity 小白教程:8. 變量初始值
變量初始值
在solidity中,聲明但沒賦值的變量都有它的初始值或默認(rèn)值。這一講,我們將介紹常用變量的初始值。
值類型初始值
- boolean: false
- string: “”
- int: 0
- uint: 0
- enum: 枚舉中的第一個元素
- address: 0x0000000000000000000000000000000000000000 (或 address(0))
- function
- internal: 空白方程
- external: 空白方程
可以用public變量的getter函數(shù)驗證上面寫的初始值是否正確:
bool public _bool; // falsestring public _string; // ""int public _int; // 0uint public _uint; // 0address public _address; // 0x0000000000000000000000000000000000000000enum ActionSet { Buy, Hold, Sell}ActionSet public _enum; // 第1個內(nèi)容Buy的索引0function fi() internal{} // internal空白方程function fe() external{} // external空白方程
引用類型初始值
- 映射mapping: 所有元素都為其默認(rèn)值的mapping
- 結(jié)構(gòu)體struct: 所有成員設(shè)為其默認(rèn)值的結(jié)構(gòu)體
- 數(shù)組array
- 動態(tài)數(shù)組: []
- 靜態(tài)數(shù)組(定長): 所有成員設(shè)為其默認(rèn)值的靜態(tài)數(shù)組
可以用public變量的getter函數(shù)驗證上面寫的初始值是否正確:
// Reference Typesuint[8] public _staticArray; // 所有成員設(shè)為其默認(rèn)值的靜態(tài)數(shù)組[0,0,0,0,0,0,0,0]uint[] public _dynamicArray; // `[]`mapping(uint => address) public _mapping; // 所有元素都為其默認(rèn)值的mapping// 所有成員設(shè)為其默認(rèn)值的結(jié)構(gòu)體 0, 0struct Student{uint256 id;uint256 score;}Student public student;
delete操作符
delete a會讓變量a的值變?yōu)槌跏贾怠?/p>
// delete操作符bool public _bool2 = true;function d() external {delete _bool2; // delete 會讓_bool2變?yōu)槟J(rèn)值,false}
在 remix 上驗證
- 部署合約查看值類型、引用類型的初始值
- 值類型、引用類型 delete 操作后的默認(rèn)值
總結(jié)
這一講,我們介紹了solidity中變量的初始值。變量被聲明但沒有賦值的時候,它的值默認(rèn)為初始值。不同類型的變量初始值不同,delete操作符可以刪除一個變量的值并代替為初始值。