⌛
What is late?
Dartのlate とはなんですか?
使用例を教えてくださいChatGPTさん🥺
Dartのlateキーワードは、宣言時に初期化されない変数を宣言するときに使用されます。lateキーワードを使用することで、初期化が後回しにされる変数を宣言することができます。
以下は、lateキーワードを使用して、初期化が後回しにされる変数を宣言する例です。
late String name;
void main() {
name = "John"; // 後で初期化する
print("My name is $name");
}
上記の例では、name変数を宣言時に初期化していませんが、lateキーワードを使用することで、後で初期化することができます。実行すると、出力はMy name is Johnとなります。
また、lateキーワードは、null-safetyの導入に伴い、nullで初期化されることがなくなりました。そのため、nullで初期化される可能性がある場合には、代わりにlate finalキーワードを使用する必要があります。
late final String? name = null;
上記の例では、name変数がnullで初期化される可能性があるため、late finalキーワードを使用して宣言しています。
Flutterでの使用例は?
ローカルデータベースのパッケージを読み込むときに、よく使われているようです。
ObjectBoxを使用した例
/// アプリ全体を通してObjectBox Storeにアクセスできるようにします。
late ObjectBox objectbox;
Future<void> main() async {
// これは、ObjectBox がデータベースを格納するアプリケーション ディレクトリを取得するために必要です。
// に格納するためです。
WidgetsFlutterBinding.ensureInitialized();
objectbox = await ObjectBox.create();
runApp(
const ProviderScope(child: MyApp()),
);
}
こちらは以前ObjectBoxについて紹介している記事です。参考までにどうぞ。
まとめ
普段から、おまじないみたいに使っているコードが多かったです。最近はカスケード演算子とか、普段あまり使わない文法を勉強すると、パッケージのコードが読めるようになってきました。
lateやっと理解できた😅
Discussion