Flutterラボ リリース3周年記念! プロコースが1ヶ月の料金で2ヶ月間受けられる、実質半額セール (2024年3月17日まで・先着)

Flutterラボの

プレミアム会員になる

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

2020.11.26

値を再代入させないようにする変数宣言の方法には、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; //エラー