初期化リスト(Initializer list)とは
Dartのコンストラクタでは、インスタンス変数を初期化するための特別な構文、初期化リストを提供しています。この機能を使用すると、コンストラクタの本体が実行される前に変数の初期化を行うことができます。
初期化リストの特徴:
-
コンストラクタ本体の前に実行: 初期化リストは、コンストラクタの中括弧
{}
の前、コロン:
の後に書きます。 -
final変数の初期化:
final
で宣言された変数は、初期化リストを通じて初期化することが多いです。これはfinal
変数が一度だけ値の設定が可能であるためです。 -
複数の初期化: 初期化リストでは、カンマ
,
を用いて複数の変数を順序正しく初期化することができます。
初期化リストの基本的な使用方法:
class Point {
final int x;
final int y;
int z;
Point(this.x, this.y);
Point.fromMap(Map<String, int> data)
: x = data['x'] ?? 0,
y = data['y'] ?? 0,
z = data['z'] ?? 0;
}
上記のPoint.fromMap
コンストラクタでは、初期化リストを使用して、マップからx
, y
, z
の値を取得し、それらの値がnull
の場合は0
をデフォルト値として設定しています。
まとめ
Dartの初期化リストは、インスタンス変数の初期化を行うための強力なツールです。特に、final
変数や、コンストラクタの本体実行前にいくつかの処理を行いたい場合に非常に有用です。