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');
}チャレンジ
簡単ゲームキャラクターを使って null-aware アクセス演算子 (?.) をデモンストレーションする Dart プログラムを作成してください:
playerNameという名前の nullable String 変数を作成し、null に設定してくださいplayerScoreという名前の nullable int 変数を作成し、100 に設定してください- null-aware アクセス演算子 (
?.) を使用して playerName の長さを取得し、nameLengthという名前の変数に格納してください - 次のメッセージを出力してください:
Player name length: X(X は nameLength の値です) playerNameを "Champion" に更新してください- null-aware アクセス演算子を再度使用して更新された長さを取得し、
nameLengthに格納してください - 更新されたメッセージを出力してください:
Player name length: X(X は新しい値です) - この形式でプレイヤーのスコアを出力してください:
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}");
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。