2022/10/8/Flutter/Equality in Dart/related sample code

 

訳は文字起こしにあります。


Part1

//https://www.youtube.com/watch?v=DCKaFaU4jdk&t=30s
//Equality in Dart | Decoding Flutter
//パート1:

void main() {
  final a1 = A(title: 'a');
  final a2 = A(title: 'a');
  //デフォルトだと同一インスタンス以外は「等しくない」と評価される。
  //By default, instances other than the same instance are evaluated as "not equal".
  print(a1 == 

2019/12/18 Dart 変数、定数( final , const)、組み込み型

変数

Dartでの変数宣言と初期化方法。

var name = 'Bob';

型注釈をせずに変数宣言する場合上記のようにvarキーワードを使います。変数は参照を格納します。上記サンプルでは変数nameは”Bob”という文字列値を持つString型のオブジェクトへの参照を保持します。

変数nameに型注釈(アノテーション)はありませんが、変数nameはString型と型推定されます。変数の型を単一の型に制限したくない場合は、Object型、またはdynamic型を指定します。

dynamic name = 'Bob';

変数の型を明示的に宣言(型注釈)する場合は↓

String name = 'Bob';

型名 変数名=リテラル;

です。


変数を宣言して初期化しないと自動的にnullがセットされます。

  String c;
  print(c==null);  //true<br>  int d;<br>  print(d==null);  //true<br>

定数

値を変更することがない場合(つまり定数)は、varキーワードではなくfinalキーワードまたはconstキーワードを使用します。finalキーワードで宣言した定数は一度だけ値をセットできます。

constキーワードを用いて宣言した定数はコンパイル時定数です。((Const variables)const定数は暗黙的にfinalです。)

Note:インスタンス変数はfinalで宣言します。constでは宣言しません。finalで宣言されたインスタンス変数は、コンストラクタのボディが始まる前に初期化する必要があります。具体的には

–インスタンス変数の宣言時、

–コンストラクタの引数での初期化

–コンストラクタのイニシャライザリストでの初期化

のいずれかで初期化する必要があります。