[Flutter]Dartにおける2種類の「const」(constキーワードのややこしさ)

このページには広告が含まれる場合があります。

 

 Flutterアプリを作るためのプログラミング言語であるDartには「const」というキーワードがありますが、実はこの「const」キーワードは意味が2種類あって、「『使う』場面(インスタンスの生成)」と「コンストラクタを『作る』場面(クラスの設計図)」で意味合いが異なります。

 

「『使う』場面(インスタンスの生成)」における「const」

「『使う』場面(インスタンスの生成)」は、値が変更できないインスタンスである「定数」を意味していますが、「定数」には2種類あって、

  • コンパイル段階で値が決定しているものが「const」
  • コンパイル段階では決定していないが、ビルド段階で決定するものが「final」

という使い分けがされており、この場合の「const」はこれに当たります。

 

「コンストラクタを『作る』場面(クラスの設計図)」における「const」

一方、「コンストラクタを『作る』場面(クラスの設計図)」における「const」はDartの7つのコンストラクタの1つである「定数コンストラクタ(Constant Constructors)」にあたります。

これは、「(コンストラクタによるインスタンス)作成後変更できないコンストラクタ」を意味していて、作成タイミングは問いません(コンパイル段階の場合もあれば、ビルド段階の場合もある)。

ですので、ちょっとややこしいですが、クラスの設計図内でのコンストラクタに「const」がついていても、使う段階ではコンパイル段階では値が決定できないので「const」が付けられない場合があるので注意が必要です(BuildContextなどを引数に持つ時)。

 

(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)

こんな記事も読まれています

今すぐ無料お試しキットを受け取る

はじめての方へ


みんプロ式プログラミング講座体系・ラインナップ
みんプロ式プログラミング講座受講の流れ(割引特典利用方法)
サイトマップ(みんプロHPコンテンツ一覧)
運営会社概要

みんプロ作成アプリ





TOP