Dartにおけるconstについて

概要

Dartにおいてconstimmutableな定数、オブジェクトを定義する際に使用される。
以下にコード例を示す。

const my_name = rerurate;

Flutterの場合

Futterでdartを使用する際にconstを使うなら、それはウィジェットがimmutableな時である。

const Text("これは不変なテキスト要素"),

Flutterにおいてconstキーワードを使用すると、特定の条件が満たされた場合にウィジェットが再構築されなくなる。
これにより、パフォーマンスが向上し、メモリ使用量を削減することが出来る。
ただし、constを使用できる条件がいくつか存在する。

この時、使用するウィジェットのクラスにconstがついていた場合のみ使用可能である。

クラスでの使用

Dartのクラスを使用した際に、プロパティの不変がfinalによって保証されている場合、コンストラクタにcosntを使用することができる。

class Person{
	final String name;
	final int age;
 
	const Person({this.name, this.age});
}

この時、インスタンスが生成されたときにキャッシュされ、パフォーマンスが向上する。

constの使用条件

ウィジェットが不変である必要がある。

constキーワードは、ウィジェットが構築された後に変更されないことを要求する。
これはウィジェット内のプロパティだけでなく、親ウィジェットから渡されるプロパティにも適用される。

親ウィジェットもconstでなければならない 。

親ウィジェットが再構築されると、その子ウィジェットも再構築される可能性があるので、全ての親子関係でconstが適用される必要がある。