「null-safety」で使われる「!」について解説します。
「!」とは

「!」は、「null許容型」を、一瞬だけ「null非許容型」にする演算子です。
言い換えると、「!」がつくと、一時的に「null」を代入できなくなるのです。
int? num = null;
print(num); //null
print(num!); //エラー
上記の例では、「null」を「int?」型に代入し、値を出力しています。
単に出力するだけであれば、「null許容型」なので「null」が出力されます。
ですが、「!」を付けると、「null非許容型」(nullが代入できない型)になるので、エラーが起きます。
注意
「!」は、「int?型」なら「int型」、「String?型」なら「String」になります。
なので、キャストのように元々の型とは違うものに出来るわけではない点に注意してください。
まとめ
「!」は、「null」を一時的に使えなくする演算子です。
「null」が代入されていてはいけないような場面で使います。
コメント