Dartのデータ型一覧と型推論の仕組みを初心者向けに徹底解説!基本文法からnull安全まで完全ガイド
生徒
「Dartのデータ型ってたくさんあって難しそうです。intとかStringとか、何が違うんですか?」
先生
「Dartのデータ型は、変数にどんな値を入れるかを決める大切な仕組みです。数値や文字列、真偽値など、それぞれ役割があります。」
生徒
「型推論っていう言葉も見かけました。型を自動で決めてくれるって本当ですか?」
先生
「その通りです。Dartではvarやfinalを使うと、コンパイラが自動で型を推論します。基本のデータ型とあわせて順番に学んでいきましょう。」
1. Dartのデータ型とは何か
Dartのデータ型とは、変数にどのような値を保存できるかを決めるルールです。Dartの基本文法を理解するうえで、データ型の理解はとても重要です。特にFlutter開発を目指す初心者にとって、Dartの型システムを理解することはアプリ開発の第一歩になります。
Dartは静的型付け言語です。これは、コンパイル時に型チェックが行われるという意味です。ただし、型推論という便利な仕組みがあり、明示的に型を書かなくても自動的に型を判断してくれます。
2. 数値型 int と double の使い方
Dartの数値型にはintとdoubleがあります。intは整数、doubleは小数を扱います。プログラミング初心者が最初に覚えるべき基本データ型です。
void main() {
int age = 20;
double height = 170.5;
print(age);
print(height);
}
数値同士の計算も簡単に行えます。Dartの演算子は他の言語と似ているため、JavaやJavaScript経験者にも分かりやすい仕様です。
void main() {
int a = 10;
int b = 3;
print(a + b);
print(a / b);
}
3. 文字列型 String の基本
Stringは文字列を扱うデータ型です。Dartではシングルクォートとダブルクォートのどちらでも文字列を表現できます。Flutter開発ではテキスト表示で頻繁に使用します。
void main() {
String name = "Taro";
print("Hello " + name);
}
文字列の中に変数を埋め込むことも可能です。これを文字列補間といいます。
void main() {
String language = "Dart";
print("I am learning $language.");
}
4. bool型と条件分岐の関係
bool型はtrueまたはfalseの値を持つデータ型です。条件分岐やループ処理で重要な役割を果たします。Dartの基本構文と密接に関係しています。
void main() {
bool isStudent = true;
if (isStudent) {
print("学生です");
} else {
print("学生ではありません");
}
}
比較演算子の結果もbool型になります。これにより、条件式を作成できます。
5. ListとMapのコレクション型
Dartでは複数の値をまとめて扱うためにListとMapというコレクション型を使います。Dartのデータ型一覧の中でも特に実務で重要な型です。
void main() {
List<String> fruits = ["apple", "banana", "orange"];
print(fruits[0]);
}
void main() {
Map<String, int> scores = {
"math": 90,
"english": 80
};
print(scores["math"]);
}
ジェネリクスを使うことで、どの型のデータを扱うか明確にできます。これにより、型安全なプログラムを書くことが可能です。
6. dynamic型とObject型の違い
dynamicはどんな型の値でも代入できる特殊な型です。ただし、型チェックが弱くなるため初心者は多用しないことが推奨されます。一方Objectはすべての型の基底クラスです。
void main() {
dynamic value = 10;
value = "Hello";
print(value);
}
Dartの型安全を活かすためには、できるだけ具体的なデータ型を指定することが大切です。
7. 型推論 var と final の仕組み
Dartの型推論とは、変数宣言時に型を書かなくても自動的に型を判断してくれる機能です。varを使うと、初期値から型が決まります。
void main() {
var message = "Hello Dart";
print(message);
}
finalは一度代入したら変更できない変数です。型推論と組み合わせて、安全なコードを書くことができます。
void main() {
final int year = 2025;
print(year);
}
Dartの型推論の仕組みを理解することで、コードを簡潔に書きつつ、静的型付けのメリットを活かすことができます。これはDart初心者が必ず押さえるべき重要ポイントです。