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じゃない場合のみ実行される
}
たしかにかっこいい気がする
以上です