Kodokon kodokon.com

Dartの基礎:変数、関数、null安全性

型付き変数に値を保存し、関数を書き、nullに対する保護のしくみを理解しましょう。

10 分 · 3 問

このレッスンを Kodokon で開く

画面を作る前に、Flutterの言語であるDartの基礎を学びましょう。変数とは、コンピューターのメモリの中にあるラベルの付いた箱で、あとで再利用するために値を保存しておくものです。Dartでは、すべての変数にがあります。型とは、それが保持できるものの性質のことです。最もよく使われる四つの型は、int(28のような整数)、double(1.65のような小数)、String文字列、つまり引用符で囲まれたテキスト)、そしてbool真偽値trueまたはfalse)です。varキーワードを使うと、あなたが与える値からDartが型を自分で判断します。

DART
void main() {
  var name = "Camille";
  int age = 28;
  double height = 1.65;
  bool isStudent = true;
  print(name);
  print(age);
  print(height);
  print(isStudent);
}
四つの変数を宣言して表示する

printコンソールに値を表示します。コンソールとは、プログラムがメッセージを書き出すテキスト領域で、何が起きているかを確認するのにとても便利です。テキストの途中に変数を挿入するために、Dartには補間があります。文字列の中で、変数名の前に直接$記号を置きます。もう一つの便利なキーワードfinalは、最初の値を受け取ったあとは二度と変わらない変数を宣言します。値が変化しないつもりのときは、すぐにこれを使いましょう。

DART
void main() {
  final city = "Lyon";
  var temperature = 21;
  print("In $city, it is $temperature degrees.");
}
補間はテキストの中に変数を挿入する

関数とは、名前を持ち、パラメーター(丸括弧の中の入力値)を受け取ることができ、returnキーワードで結果を返すことができる、再利用可能な小さなコードのブロックです。関数は、まず結果の型、次にその名前、そしてそのパラメーターを書いて宣言します。void型は"何も返さない"という意味です。プログラムのエントリーポイントであるmainがその例です。

DART
int add(int a, int b) {
  return a + b;
}

String greet(String name) {
  return "Hello, $name!";
}

void main() {
  print(add(2, 3));
  print(greet("Nadia"));
}
二つの関数:一方は数値を返し、もう一方はテキストを返す

最後の重要な概念、null安全性です。nullは"何もない、値がない"を意味する特別な値です。忘れられたnullは、歴史的にアプリがクラッシュする主な原因の一つでした。Dartはあなたを守ります。デフォルトでは、変数はnullを保持できません。それを明示的に許可するには、型にクエスチョンマークを付けます。String?は"文字列、または何もない"と読みます。そして??演算子は、変数がnullのときだけ使われる代わりの値を提供します。

DART
void main() {
  String? nickname;
  print(nickname ?? "No nickname yet");
  nickname = "Momo";
  print(nickname);
}
?はnullを許可し、??は代わりの値を提供する

理解度チェック

このレッスンの要点をしっかり覚えているか確認しましょう。

  1. trueまたはfalseを保存するのに適したDartの型はどれですか?
    • int
    • String
    • bool
    • double
  2. String? nicknameという宣言はどういう意味ですか?
    • nickname変数はテキストまたはnullを保持できる
    • nickname変数は必須で、必ず埋めなければならない
    • コンパイラーがnicknameの型を推測しなければならない
  3. int add(int a, int b) { return a + b; }のとき、print(add(2, 3))は何を表示しますか?
    • 2 + 3
    • 5
    • コンパイルエラー