検索
【Flutter/dart】late変数が初期化されたかのチェック
- M.R

- 2024年2月11日
- 読了時間: 1分
やりたいこと
初期値さえ決まればあとは不変な変数がある
ただし、コンストラクタ起動時にはまだ決定できない
このような変数について
late finalで変数を定義
(何らかのタイミングで)初期化されたかどうかをチェックし、されていなければ値を入れる(チェックしないとfinalに値を代入したエラーになるので)
この場合、「初期化されたかどうか」はどのようにチェックしたらいいのか分からなかった
nullかどうかをチェックすれば、と思ったが、たとえnullチェックでも未初期化の変数を参照すると参照エラーになってしまった
解決策
そもそもこのようなチェックはするべきではない、というのが公式な見解らしい
こういう場合はnullableな変数にして初期値をnullに設定、nullの場合に初期値を設定すればよい。






コメント