【Dart言語】変数と定数まとめ【var・final・const】

こんにちは。Dart勉強中です。

前回はfor文についてまとめました。→【2020年】Dart言語for文の書き方まとめ

✔︎今回はDart言語の変数と定数について学んだので記事にします

勉強中なので間違い等ありましたらコメントください🙆🏻‍♂️

ポイント
  1. 変数はvar、定数はfinalかconst
  2. constとfinalは使いわけが必要

参考: Dart Language Tour(公式doc)

【Dart言語】変数と定数まとめ【var・final・const】

変数 var

定数 final・const

finalもconstも初回代入時以降には代入不可。

finalとconstの違いはconstはコンパイル時定数であるという点です。

コンパイル時定数ってなんやねんって思い色々調べてみたとこr、

✔︎コンパイル時に定数である必要がある場合はconstを使うとのこと。

なんかしっくりこず色々調べてみた結果一番わかりやすかったのは下記記事です。

What is the difference between the “const” and “final” keywords in Dart?

So, what does this mean?
Const:
If the value you have is computed at runtime (new DateTime.now(), for example), you can not use a const for it. However, if the value is known at compile time (const a = 1;), then you should use const over final. There are 2 other large differences between const and final. Firstly, if you’re using const, you have to declare it as static const rather than just const. Secondly, if you have a const collection, everything inside of that is in const. If you have a final collection, everything inside of that is not final.
Final:
final should be used over const if you don’t know the value at compile time, and it will be calculated/grabbed at runtime. If you want an HTTP response that can’t be changed, if you want to get something from a database, or if you want to read from a local file, use final. Anything that isn’t known at compile time should be final over const.

What is the difference between the “const” and “final” keywords in Dart?

違いをまとめると、下記です。

constはコンパイル時に何が入るか分からない場合は使わない方が良い。
例えばAPIを叩いてそのresponseを入れたいとき。コンパイル時には値何が入るか分からない。
こういった場合はfinalを使いましょうと。
一方でコンパイル時に確実に何が入るか分かる場合はconstでええよ。みたいな感じですね。

では書き方をみていきましょう。

【まとめ】dart言語の変数と定数

ポイント
  1. 変数はvar、定数はfinalかconst
  2. constとfinalは使いわけが必要

参考記事: