はじめに
Nullableな変数をNon-Nullに変換する方法ついてまとめました。
1. Nullチェックしてアンラップ
TestClass? test = GetClass(); // test.Func(); Optionalなのでエラーになる if (test != null) { // アンラップされたのでエラーにならない test.Func(); }
!= null
にすると、それ以降の行で変数がアンラップされた状態になります。
2. !でアンラップ
TestClass? test = GetClass(); // test.Func(); Optionalなのでエラーになる test!.Func();
Swiftだと強制アンラップという言い方しますね。
無理やりアンラップしただけなので、もし変数がNullなら例外吐きます。
// コンソールに出力されるエラー Unexpected null value.
余談
Swiftでも今回紹介したアンラップ方法ができます。 Swiftだとさらにguard節
を使いよりスマートに書くことができたりもします。
Dartにもguard
が実装されることを願います🙄