Menu
CoddyTech

Null対応演算子

CoddyのDartジャーニー「基礎」セクションの一部。レッスン 28/94。

null対応演算子(??)は、左側の式がnullでなければ左側の式を返し、そうでなければ右側の式を返します。

void main() {
  String? name = 'Dart';
  String displayName = name ?? 'Guest';
  
  print('Hello, $displayName!');
}
void main() {
  String? name = null;
  String displayName = name ?? 'Guest';
  
  print('Hello, $displayName!');
}
void main() {
  int? score;  // 初期値がないため、デフォルトでnullになる
  int displayScore = score ?? 0;
  
  print('Your score: $displayScore');
  
  // プログラムの後半で、scoreに値が代入される
  score = 100;
  displayScore = score ?? 0;
  
  print('Your updated score: $displayScore');
}
challenge icon

チャレンジ

簡単

Dartのnull対応演算子(??)を示すプログラムを作成しましょう。

  1. usernameという名前のnull許容String変数を宣言し、nullを設定します
  2. userAgeという名前のnull許容int変数を宣言し、nullを設定します
  3. usernameがnullの場合、新しい変数displayNameにデフォルト値"Guest"を代入するために、null対応演算子を使います
  4. userAgeがnullの場合、新しい変数displayAgeにデフォルト値18を代入するために、null対応演算子を使います
  5. 次の正確な形式で値を出力します。
Username: Guest (default value used)
Age: 18 (default value used)

次に、以下を行います。

  1. usernameを"DartUser"に更新します
  2. userAgeを25に更新します
  3. 更新した値を使って、手順3と4を繰り返します
  4. 次の正確な形式で値を出力します。
Username: DartUser (original value used)
Age: 25 (original value used)

自分で試してみよう

void main() {
  // null許容の変数を宣言する
  String? username = _;
  int? userAge = _;
  
  // デフォルト値を設定するためにnull対応演算子を使用する
  String displayName = username ?? _;
  int displayAge = userAge ?? _;
  
  // 初期値を出力する
  print("Username: $displayName (default value used)");
  print("Age: $displayAge (default value used)");
  
  // 変数を更新する
  username = _;
  userAge = _;
  
  // null対応演算子を再度使用する
  displayName = username _ "Guest";
  displayAge = userAge _ 18;
  
  // 更新後の値を出力する
  print("Username: $displayName (original value used)");
  print("Age: $displayAge (original value used)");
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Dartオンラインコンパイラ