Menu
Coddy logo textTech

Null-aware アクセス

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

null 意識アクセス演算子 (?.) は、潜在的に null なオブジェクトのプロパティに安全にアクセスし、ランタイムエラーを防ぎます。

void main() {
  String? name = 'Dart';
  int? length = name?.length;
  
  print('Name: $name');
  print('Length: $length');
}

null 値の場合、クラッシュせずに null を返します:

void main() {
  String? name = null;
  int? length = name?.length;
  
  print('Name: $name');
  print('Length: $length');
}
challenge icon

チャレンジ

簡単

ゲームキャラクターを使って null-aware アクセス演算子 (?.) をデモンストレーションする Dart プログラムを作成してください:

  1. playerName という名前の nullable String 変数を作成し、null に設定してください
  2. playerScore という名前の nullable int 変数を作成し、100 に設定してください
  3. null-aware アクセス演算子 (?.) を使用して playerName の長さを取得し、nameLength という名前の変数に格納してください
  4. 次のメッセージを出力してください: Player name length: X (X は nameLength の値です)
  5. playerName を "Champion" に更新してください
  6. null-aware アクセス演算子を再度使用して更新された長さを取得し、nameLength に格納してください
  7. 更新されたメッセージを出力してください: Player name length: X (X は新しい値です)
  8. この形式でプレイヤーのスコアを出力してください: Player score: 100

チートシート

null 認識アクセス演算子 (?.) は、潜在的に null なオブジェクトのプロパティに安全にアクセスし、ランタイムエラーを防ぎます。

オブジェクトが null でない場合、プロパティの値を返します:

String? name = 'Dart';
int? length = name?.length; // 4 を返します

オブジェクトが null の場合、クラッシュする代わりに null を返します:

String? name = null;
int? length = name?.length; // null を返します

自分で試してみよう

void main() {
  // ここに nullable 変数を宣言してください
  String? playerName = _;
  int? playerScore = _;
  
  // ?. 演算子を使用して playerName の長さを取得します
  int? nameLength = playerName_.length;
  
  // 初期の名前長さを印刷します
  print("Player name length: ${nameLength}");
  
  // playerName を更新します
  playerName = _;
  
  // ?. 演算子を使用して更新された長さを取得します
  nameLength = playerName_.length;
  
  // 更新された名前長さを印刷します
  print("Player name length: ${nameLength}");
  
  // プレイヤーのスコアを印刷します
  print("Player score: ${playerScore}");
}
quiz icon腕試し

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

基礎のすべてのレッスン