基本的な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
}任意の型の nullable 変数を宣言できます。
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 安全性演算子?を使ってnullに設定します(String?)。userAgeという名前の int 変数を宣言し、null 安全性演算子を使ってnullに設定します。- 次の正確な形式で、ラベルを付けて両方の変数を出力します。
Username: null
User age: null次に:
username変数に"DartLearner"を代入します。userAge変数に25を代入します。- 前とまったく同じ形式で、両方の変数をもう一度出力します。
出力は、上記の正確な形式と一致する必要があります。
自分で試してみよう
void main() {
// ここでnull許容の変数を宣言する
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変数定数変数命名規則基本的なNull安全性振り返り - 変数の宣言自分で練習してみよう: Dartオンラインコンパイラ