Flutter は Dart でのコーディングになりますが、 Dart における変数の宣言の仕方についてまとめておきます。
変数の宣言
型を指定せずに変数を宣言
javascript 同様に var
で宣言します。
var myName = 'Ironman';
上記の例では、 myName
という変数を宣言し文字列を代入しています。
var
で変数を宣言する際に値を代入すると、Dartはその変数の型を推測し、そして他の型の値を代入できなくなります。
下記の例では、変数 myName
を宣言時に文字列を代入しているので、それ以降で整数を入力するとエラーになります。
var myName = 'Ironman';
myName = 3000; // ERROR
変数を宣言するときに、値を代入しなければ型は固定されません。
var myName;
myName = 'Ironman'; // OK
myName = 3000; // OK
変数の型が途中で変わる場合は、dynamic
で変数を定義することもできます。
dynamic myName = 'Ironman';
myName = 3000; // OK
型を指定して変数を宣言
型を指定して変数を宣言するときは、変数名の前に型名を記載します。
int myNumber = 159;
上記の例では、int
と記載したので、 myNumber
は整数型となります。
その他の型には下記のようなものがあります。
double
int
は整数ですが、小数を含む数値の場合は double
で定義します。
double myDouble = 1.2394;
boolean
true
or false
boolean doesIronmanSaveWorld = true;
String
文字列を表す型です。
String myWord = 'I love you 3000';
List<T>
配列を表す型です。
T
には int
や String
, dynamic
など、配列の要素を指定する型名が入ります。<T>
は省略可能。
List<String> myMovies = ['Ironman', 'Ironman 2', 'Ironman3', 'Civil War', 'Avengers'];
Map<K, V>
連想配列を表す型です。
Map<String, Int> moviesYear = {
'Ironman': 2008,
'Ironman 2': 2010,
'Ironman 3': 2013
}
定数の宣言
定数を宣言する方法は2つあります。
final
final
で宣言された定数は、その後他の値を代入することはできません。
final yourName = 'Spiderman';
yourName = 'Dr. Strange'; // ERROR
const
final 同様に const
で宣言された定数は、その後他の値を代入できません。
const yourName = 'Spiderman';
yourName = 'Dr. Strange'; // ERROR
さらに、 const
はコンパイル時に定数として定まっていないといけないので、変数を代入することはできません。
string myName = 'Ironman';
const yourName = myName // ERROR
final yourName = myName // OK