🙌
Dartのconstコンストラクタとは
まずはfinal
,const
,コンパイル時定数
という用語を抑えておく必要がある。
- final
- 初期化開始後1度だけ初期化
- 再代入不可
- 確保したメモリの内容は書き換えできる
-
final hoge = [1,2,3] hoge = [] // エラーになる hoge[0] = 10 // エラーにならない
-
- const
- コンパイル時に決まる定数 = コンパイル時定数
- 再代入不可
- 確保したメモリの内容の書き換えもできない
const hoge = [1,2,3] hoge = [] // エラーになる hoge[0] = 10 // エラーになる
- コンパイル時定数とは
-
const指定された変数を含み、より一般的な概念が「コンパイル時定数(compile-time constant)1」である。
-
1
とか"abc"
とか[1,2,3]
のリテラル。要は動的に決まらない値。
-
constコンストラクタとは
- 上記を踏まえて、constコンストラクタ とは
- コンパイル時定数のみ引数に受け付けるクラスのコンストラクタ
Discussion