onsen code monkey

個人的な日記とプログラミング備忘録です

【Kotlin】Null対策(Null Safety)

KotlinではNull Safetyという言語仕様があり、Null参照による実行時エラーを防ぐための仕組みがいろいろあるらしい

例えばnon-null変数(null不可)にnullable変数(null許可)を代入しようとするとコンパイルエラー

val nullable: String? = null
val nonNull: String = nullable // コンパイルエラー

でも!!演算子を使えば無理矢理代入することができる
(当然実行時エラーとなる)

val nullable: String? = null
val nonNull: String = nullable!! // 実行時エラー

僕はアホなので!!演算子フル活用で実装していたのですが
それじゃNull Safetyの意味がないだろとソースレビューで指摘されました
全くその通りです

Kotlin的にかっこいい書き方は以下のようにsafe call演算子(?.)とスコープ関数(let)を使うべきとのこと

nullable?.let {
            println(it) // nullじゃない場合のみ実行される
        }

たしかにかっこいい気がする

以上です