【Flutter/Dart】late|変数の初期化を遅らす

今回は変数の初期化(初期値を渡す)を遅らすことができるlateの使い方について紹介します。

lateを宣言した変数はnull非許容型(non-nullable型)として扱われます。

\ 世界最大級のオンライン学習サービス /

目次

lateの使い方

late 型 変数名;
void main() {
  var person = Person('Alexander');
  person.myNickname('Alex');
  print(person.nickname);
}

class Person {
  String name;
  late String nickname;

  Person(this.name);

  void myNickname(String name) => nickname = name;
}

//結果
//Alex

lateを宣言した変数は初期化を遅らすことができます。

上記コードでは変数nicknameの初期化をlateで遅らせています。

lateを宣言した変数を使用しない場合は初期化不要

lateを宣言した変数を使用する前に必ず初期化(値を渡す)する必要があります。

一方でlateで宣言した変数を使用しない場合は初期化しないでも問題ありません。よってlateは必須では無い変数などで使用されます。

初期化しないで使用した場合は例外を投げる

void main() {
  var person = Person('Alexander');
  print(person.nickname); //初期化なし
}

class Person {
  String name;
  late String nickname;

  Person(this.name);

  void myNickname(String name) => nickname = name;
}

//結果
//Unhandled Exception: LateInitializationError: Field 'nickname' has not been initialized.

lateを宣言した変数を初期化せずに使用した場合は例外LateInitializationErrorを投げます。

一緒に読みたい

参考

  • URLをコピーしました!
目次