【Dart】【Flutter】finalとconstの違いについて

#プログラミング#Flutter#dart#ハッチアウトスクール#Flutterstudy
値を再代入させないようにする変数宣言の方法には、finalとconstの2種類があります。
final
宣言された変数は定数として扱われ、再代入することはできません。
final int a = 0;
型を特定させなければ、型推論(var)と同じように扱われます。
final a = 0;
const
宣言された変数はコンパイルで評価された定数として扱われ、再代入することはできません。
const int b = 0;
final と同様に、型を特定させなければ、型推論(var)と同じように扱われます。
const b = 0;
まとめ
どちらとも定数として扱われるが、constはコンパイルで評価され、finalは評価されない。
宣言の際に、すでに宣言された変数を代入すると、finalはコンパイルで評価しないためエラーにはならないが、constではエラーになる。
int x = 1;
final int b = x; //エラーにはならない
const int a = x; //エラー