【Flutter/Dart】変数のあとに、?や!がつくのは、どうして?🤔
変数のあとに、?や!がつくのは、どうして?🤔
Dart言語(Flutterの開発に使用される)での?と!は、null許容性に関連しています。
?: 型の後に?を付けると、その変数はnull値を許容することを意味します。つまり、その変数は値を持たない状態(null)になることがあります。
String? name; // nameはString型かnullのいずれかを持つ
!: 変数の後に!を付けると、その変数がnullでないことをDartに伝えます。null許容型の変数に対して使われ、実行時にその変数がnullでないことを保証します。
String? name;
print(name!); // nameがnullでないと仮定
? はnullを許容することを示し、! はnullではないことを強制するために使われます。
もし、!をつかったときに、nullだったらどうなるの?🤔
`!`を使ってnull許容型の変数にアクセスし、その変数が実際にnullだった場合、Dartは`NoSuchMethodError`の例外を投げます。これは、プログラムがnullでないと仮定した変数が実際にはnullであるため、その変数にアクセスできないことを意味します。そのため、`!`演算子は慎重に使用する必要があり、変数がnullでないことが確実な場合にのみ使うべきです。
いいなと思ったら応援しよう!
よろしくお願いしますッ!