初心者のための Solidity チュートリアル: 8. 変数の初期値
変数の初期値
Solidityでは、宣言されていても値が割り当てられていない変数には、初期値またはデフォルト値があります。今回はよく使われる変数の初期値について紹介します。
値の型の初期値
- ブール値: false
- 弦:""
- 整数: 0
- 単位: 0
- enum : 列挙型の最初の要素
- アドレス: 0x0000000000000000000000000000000000000000 (またはアドレス(0) )
- 関数
- 内部: 空の式
- 外部: 空の式
パブリック変数の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空白方程
参照型の初期値
- マッピング: すべての要素がデフォルト値にマッピングされます
- 構造体 struct : すべてのメンバーがデフォルト値に設定された構造体
- 配列配列_
- 動的配列: []
- 静的配列 (固定長): すべてのメンバーがデフォルト値に設定された静的配列
パブリック変数の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;
削除演算子
a を削除すると、変数aの値が初期値に変更されます。
// delete操作符
bool public _bool2 = true;
function d() external {
delete _bool2; // delete 会让_bool2变为默认值,false
}
リミックスで検証する
- コントラクトをデプロイして値型と参照型の初期値を表示する
- 値型、参照型の削除操作後のデフォルト値
要約する
今回の講義ではsolidityにおける変数の初期値について紹介しました。変数が宣言されていても値が割り当てられていない場合、その値はデフォルトの初期値になります。変数の型が異なれば初期値も異なります。delete演算子を使用すると、変数の値を削除して初期値に置き換えることができます。