Solidity-constructors
提供:Dev Guides
Solidity-コンストラクター
コンストラクターは、 constructor キーワードを使用して宣言された特別な関数です。 これはオプションの機能であり、コントラクトの状態変数を初期化するために使用されます。 以下は、コンストラクターの主要な特性です。
- コントラクトには、コンストラクターを1つだけ含めることができます。
- コントラクトが作成されると、コンストラクターコードが1回実行され、コントラクト状態の初期化に使用されます。
- コンストラクターコードが実行された後、最終コードがブロックチェーンにデプロイされます。 このコードには、パブリック関数と、パブリック関数を介して到達可能なコードが含まれます。 コンストラクターコードまたはコンストラクターによってのみ使用される内部メソッドは、最終コードには含まれません。
- コンストラクターは、パブリックまたは内部のいずれかです。
- 内部コンストラクターは、コントラクトを抽象としてマークします。
- コンストラクターが定義されていない場合、デフォルトのコンストラクターがコントラクトに存在します。
pragma solidity ^0.5.0;
contract Test {
constructor() public {}
}
- 場合には、基本コントラクトに引数を持つコンストラクターがあり、各派生コントラクトはそれらを渡す必要があります。
- 基本コンストラクタは、次の方法を使用して直接初期化できます-
pragma solidity ^0.5.0;
contract Base {
uint data;
constructor(uint _data) public {
data = _data;
}
}
contract Derived is Base (5) {
constructor() public {}
}
*基本コンストラクタは、次の方法を使用して間接的に初期化できます-
pragma solidity ^0.5.0;
contract Base {
uint data;
constructor(uint _data) public {
data = _data;
}
}
contract Derived is Base {
constructor(uint _info) Base(_info* _info) public {}
}
- 基本コントラクトコンストラクターを初期化する直接および間接的な方法は許可されていません。
- 派生コントラクトが引数をベースコントラクトコンストラクターに渡さない場合、派生コントラクトは抽象になります。