見出し画像

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

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

この記事が気に入ったらサポートをしてみませんか?