👌
[Dart]DartのNull Safetyのまとめ(!とか?)
NullSafetyとは
参考記事
静的型付け言語であるDartでのnullSafetyとは
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じゃないことは確定している時に◎
あんまり参考にならんかもでけど簡単に言うと以上
踏み込んだ勉強もしないとなーって感じ
Discussion