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で宣言されたインスタンス変数は、コンストラクタのボディが始まる前に初期化する必要があります。具体的には

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

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

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

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

2018/11/22 static,静的プロパティ,self,定数など

静的(static)プロパティ

  • 静的(static)プロパティはクラスがインスタンス化されていなくても利用できる。
  • インスタンスかされているものも含めて全てのオブジェクトに共通。
  • 静的プロパティにアクセスする方法(クラスがEmployee,静的プロパティが$company)

①クラス外

Employee::$company

②クラスコンテキスト

self::$company

クラス定数

  • クラス定数にアクセスする方法(クラスがEmployee,静的プロパティが$company)

①クラス外

Employee::REGULAR

②クラスコンテキスト

self::REGULAR