基本的な Null 安全性
CoddyのDartジャーニー「基礎」セクションの一部 — レッスン 14/94。
Null safety は、どの変数が空(null)になるかを制御することで、予期しないアプリのクラッシュを防ぎます。
デフォルトでは、変数は値を含まなければなりません:
void main() {
String name = 'Dart';
print(name); // 出力: Dart
// これは問題を引き起こします:
// name = null; // 許可されていません
}型の後に ? を追加して null 値を許可します:
void main() {
String? name = 'Dart';
print(name); // 出力: Dart
// 今、null を割り当てることができます
name = null;
print(name); // 出力: null
}任意の型の null 可能変数を宣言できます:
void main() {
int? age; // 初期値なし、デフォルトで null
double? price = 19.99;
bool? isAvailable = true;
print(age); // 出力: null
print(price); // 出力: 19.99
print(isAvailable); // 出力: true
// これらのいずれかを null に変更できます
price = null;
isAvailable = null;
}
Null 安全性は、コードが操作で null 値を使用しようとしたときに発生する予期しないクラッシュからアプリを保護するのに役立ちます。
チャレンジ
初心者? 演算子を使用して、基本的な null 安全性を示す Dart プログラムを作成してください:
usernameという名前の String 変数を宣言し、null 安全演算子?(String?) を使用してnullに設定してくださいuserAgeという名前の int 変数を宣言し、null 安全演算子を使用してnullに設定してください- 以下の EXACT 形式でラベル付きで両方の変数を印刷してください:
Username: null
User age: null次に:
username変数に値"DartLearner"を割り当ててくださいuserAge変数に値25を割り当ててください- 前にと同じ EXACT 形式で両方の変数を再度印刷してください
出力は上記に示された正確な形式と一致する必要があります。
チートシート
デフォルトでは、Dartの変数はnullにはできません。null値を許可するために、型名の後に?を追加します:
// Non-nullable (default)
String name = 'Dart';
// Nullable with ?
String? name = 'Dart';
name = null; // Now allowed任意の型のnull可能な変数を宣言できます:
int? age; // Defaults to null
double? price = 19.99;
bool? isAvailable = true;
// All can be set to null
price = null;
isAvailable = null;自分で試してみよう
void main() {
// ここに nullable 変数を宣言する
String? username = ?;
int? userAge = ?;
// ラベル付きで初期値を印刷する
print("Username: " + username.toString());
print("User age: " + userAge.toString());
// 変数に新しい値を割り当てる
username = ?;
userAge = ?;
// 同じラベルで更新された値を印刷する
print("Username: " + username.toString());
print("User age: " + userAge.toString());
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
2変数と基本データ型
変数とは?文字列整数 (int)倍精度小数 (double)ブール値 (bool)'var' を用いた型推論final 変数const 変数命名規則基本的な Null 安全性まとめ - 変数の宣言