本記事の目標
Dartにおいて変数宣言をできるようになる
変数宣言
変数宣言は基本的に以下の形となります!
型名 変数名 = 値;
また、Dartは型推論(自動で型を判定してくれる)が可能なので、
- 型を指定する変数宣言
- 型を指定しない変数宣言(型推論)
の2方法について記載します
型を指定する変数宣言
Dartは型推論が可能なので、すべて型推論でいいのではないか、型をあえて指定する必要はないんじゃないかと
思われる方がいるかも知れませんが可読性(コードの見易さ)や機能追加のしやすさなどの観点からあまりおすすめできません
今回は例として、「int」型で値が「20」の「exampleCount」という変数を宣言します!
//初期値を指定して変数宣言するパターン
int exampleCount = 20;
//初期値を指定せず変数宣言するパターン
int exampleCount;
exampleCount = 20;
上のパターンも下のパターンも結果は同じです!
型を指定しない変数宣言(型推論)
型を指定しない場合は、型名(先程のint)のところを「var」というキーワードに変えます
先ほどと同じ様に、「int」型で値が「20」の「exampleCount」という変数を宣言します!
//初期値を指定して変数宣言するパターン
var exampleCount = 20; //←この段階でexampleCountは自動的にint型になる
//初期値は指定せず変数宣言するパターン
var exampleCount; //←この段階ではまだexampleCountの型は決まっていない(何者にもなれる)
exampleCount = 20; //←ここで初めてexampleCountはint型になる(もうint以外にはなれない)
exampleCount = '20'; //←String型を代入しようとしているので、ここはエラーになる
変数宣言と同時に値を代入しない場合は、初めて代入されるまで何者にもなれるが、
値を代入すると、その時点で型が決まり、それ以降他の型にはなることができない
一度代入すると他の型にはなれないと言ったのですが、実は一度代入した後でも他の型を入れられるようにする方法があるんです
どうするのかというと、「var」の代わりに「dynamic」を使います
dynamic exampleCount;
exampleCount = 20; //←ここでint型になる
exampleCount = '20'; //←String型になる(varの場合はエラーになるがdynamicは大丈夫)
基本的な変数宣言はこんな感じです!