2021/2/15 Learn (null-safety) with Snippets! 8〜14の訳

<< 2021/2/15 Learn (null-safety) with Snippets! 1〜7の訳(前ページ


Snippets 8: The assertion operator

nullableな式をnon-nullableな変数に代入したい場合、代入演算子を使うことができます。(` ! `付きで。)

式の後ろに` ! `を付けることで、Dartに対してその式の値がnullでないことを示すことができます。

これはnon-nullableな変数へ安全に代入する方法です。

Note:nullでないことが確実な時に上記の方法を使ってください。値がnullである式に` ! `を付けると例外がthrow(スロー)されます。

` ! `を追加して、下記のコードの3つの間違った割り当て(代入)を修正してみてください。

↑のように書いているが、実際動かしてみると、最初の文はエラーは出ない。(2021年2月15日時点)

ただ、そのような挙動の違いがあっても、基本的な考え方として「nullableな変数はnullチェックが必要」ということは言えるはず。

int? couldReturnNullButDoesnt() => -3;

void main() {
  int? couldBeNullButIsnt = 1;
  List<int?>