Menu
Coddy logo textTech

Null-aware 演算子

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 の nullable String 変数を宣言し、null に設定してください
  2. 名前が userAge の nullable 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. userAge25 に更新してください
  3. 更新された値でステップ 3 と 4 を繰り返してください
  4. 以下の正確な形式で値を印刷してください:
Username: DartUser (original value used)
Age: 25 (original value used)

チートシート

null 合体演算子 (??) は、左の式が null でない場合は左の式を、そうでなければ右の式を返します。

String? name = null;
String displayName = name ?? 'Guest';  // name が null のため 'Guest' を返します

int? score = 100;
int displayScore = score ?? 0;  // score が null でないため 100 を返します

自分で試してみよう

void main() {
  // nullable変数を宣言
  String? username = _;
  int? userAge = _;
  
  // デフォルト値のためにnull-aware演算子を使用
  String displayName = username ?? _;
  int displayAge = userAge ?? _;
  
  // 初期値を印刷
  print("Username: $displayName (default value used)");
  print("Age: $displayAge (default value used)");
  
  // 変数を更新
  username = _;
  userAge = _;
  
  // 再度null-aware演算子を使用
  displayName = username _ "Guest";
  displayAge = userAge _ 18;
  
  // 更新された値を印刷
  print("Username: $displayName (original value used)");
  print("Age: $displayAge (original value used)");
}
quiz icon腕試し

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

基礎のすべてのレッスン