- FlutterでDart言語のfinalとconstの違いを知りたい!
そこで、今回はFlutterのDartにおけるfinalとconstの違いと使い方を初心者向けに解説します。
不明点などありましたら、お気軽にお問い合わせ下さい。
- finalとconstの違い
- finalの使い方、具体例
- constの使い方、具体例
- パフォーマンスの影響
ちなみに、Flutterのスキルを0から効率的に伸ばす方法は、仕事として実務を経験することです。そして、最速で転職・就職・副業するには学習をどんどん進め、ポートフォリオを最優先で完成させましょう!応募できそうなFlutter案件をチェックすると必要なスキルも分かり学習に身が入ります!Flutter案件/求人の探し方はコチラで詳しく解説していますので、ご参考にして下さい。
【Dart】finalとconstの違い
final
もconst
も変数の値を変えたくない時に使いますが、その方法が異なります。
基本的には、変数の値がプログラム実行中に変更されない場合は const
を使用し、変更される可能性がある場合は final
を使用することが望ましいです。
final | 変数が初めて参照されるときに値が計算されます。そのため、final 変数は初めて参照されるタイミングで値が決定され、その後は変更されません。 |
const | コンパイル時に値が計算されます。そのため、const 変数はアプリケーションがコンパイルされる時点で値が決定され、実行時に変更されません。 |
void main() {
String x = "check";
final String b = x; //エラーにならない
const String a = x; //エラー
}
Final and const
If you never intend to change a variable, use final or const, either instead of var or in addition to a type. A final variable can be set only once; a const variable is a compile-time constant. (Const variables are implicitly final.)
(直訳)変数を変更するつもりがない場合は、var の代わりに、または型に加えて、final または const を使用してください。 final 変数は 1 回だけ設定できます。 const 変数はコンパイル時の定数です。 (const 変数は暗黙的に final です。)
引用:Dart API 公式サイト「final and const」
【Dart】finalとconstの使い方と具体例
一般的にfinal
変数は実行時に計算する必要がある値に使用し、const
変数は定数値に使用します。
finalの使い方
final
変数は、実行時に計算する必要がある値に使用されます。例えば、以下のような場合です。
- ランダムな値を生成する
- 現在のデバイスの時間を取得する
- 外部APIから取得したデータ
constの使い方
const
変数は、定数値に使用されます。例えば、以下のような場合です。
- 定数的な値 (例えば、π)
- 静的なリソース (例えば、アイコン、タイトル、項目名)
- 定数的な定数 (例えば、enum)
【Dart】finalとconstによるアプリのパフォーマンス影響
final
変数は、実行時に初期化されるため、性能に影響を及ぼす可能性があります。 一方、 const
変数は、コンパイル時に評価されるため、実行時に性能の影響を及ぼすことはありません。
また、 const
変数は、コンパイル時に評価されるため、実行時に値が変更されることはないため、実行時に値を確認する必要がなく、より高速にアクセスすることができます。
【Dart】finalとconstの基本的な使い方は押さえておこう!
今回の記事ではDartにおけるfinalとconstの違いと使い方について解説しました。
finalとconstを正しく使い分けて、パフォーマンスの良いアプリを作りましょう!
Flutterエンジニアになるには?
初心者が中級者レベルのFlutterエンジニアなるまでの進め方をまとめました。
Flutterの学習方法を知る

Flutter をスクールで学ぶ

Flutterの副業を探す

おまけ:Flutter入門の完全ガイド

Flutter/Dartの基礎一覧
Flutter/Dartの入門知識として押さえておきたい内容をまとめました。学習のご参考にどうぞ。
- ローカルデータベース(SQLite)
- グラフ①(fl_chart)
- グラフ②(syncfusion_flutter_charts)
- カレンダーから日付取得①(syncfusion_flutter_datepicker)
- カレンダーから日付取得②(month_picker_dialog_2)