意味
Initializer listとは、Dartのクラス内でコンストラクタ作成時に使用するキーワード。 このキーワードの役割は「メンバ変数を初期化する際の処理を記述する」こと。
使い方
基本の使い方は以下。
コンストラクタ() : 変数 = 値;
例
例で説明する。例えば次のようなクラスがある。
class Human { String firstName; String lastName; String fullName; // firstName + " " + lastName としたい Human(this.firstName, this.lastName); }
fullNameはfirstNameとlastNameを指定された際に、それらを用いて指定したい。 なのでインスタンス作成時に代入するようにしたい。
また上記のHumanクラスの記述では、次のようなランタイムエラーが表示される。
Non-nullable instance field 'fullName' must be initialized. Try adding an initializer expression, or add a field initializer in this constructor, or mark it 'late'.dartnot_initialized_non_nullable_instance_field
lateキーワードをfullNameにつければエラーは回避できるが、するとnullになってしまうので、あまりよろしくない。
そこでInitializer listを使ってfullNameをインスタンス生成時に初期化する。
class Human { String firstName; String lastName; String fullName; // firstName + " " + lastName としたい Human(this.firstName, this.lastName) : fullName = "$firstName $lastName"; }
これでクラス内の他の処理を行う前に、fullNameを初期化できる。lateキーワードも不要。