👌

[Dart]DartのNull Safetyのまとめ(!とか?)

2022/10/01に公開

NullSafetyとは

参考記事
静的型付け言語であるDartでのnullSafetyとは

  • nullによるエラーを防ぐ仕組みのこと。

int a;で宣言したら
int a = nullってできひんようになった。てこと(今まではOKだった↓)
公式

  • あの頃は、、、
// Without null safety:
bool isEmpty(String string) => string.length == 0;

main() {
  isEmpty(null);
}

If you run this Dart program without null safety(nullSafety導入前は), it throws a NoSuchMethodError exception on the call to .length.(NoSuchMethodError exceptionが出ちゃいます!)

nullSafetyが導入されて良い点とは

  • 想定外のnullの混入を防げること。
    →「nullが混入するかどうか」がわかりやすくなり開発しやすくなった

開発者にとってnullがあり得ないかnullでもいいと許容するかを理解しているが大事なわけで、それを宣言しコードに落とし込む方法として、「!」や「?」がある
あ、ちなみにnullって常に小文字で書かんとあかんらしい

普通に宣言

もう一度言うが、
int a;的な感じで普通に宣言すると
int a = null;って後でnullが混入したらエラーになる!

null許容型「?」

  • ?の意味:「このデータはnullでもOKよ
    (nullableって言うらしい)
    →まだnullかどうかを調べて分岐処理する前とかの時に◎

非null宣言型「!」

  • !の意味:「このデータは100%nullじゃないよ!
    (勝手に非null宣言型とかいうてるけど日本語あってんのかな、、)
    (force unwrappingって言うらしい)
    →すでにnullかどうかを調べ終わりnullじゃないことは確定している時に◎

あんまり参考にならんかもでけど簡単に言うと以上
踏み込んだ勉強もしないとなーって感じ

GitHubで編集を提案

Discussion