- Kotlin 6
886 :デフォルトの名無しさん[sage]:2020/03/24(火) 08:13:59.70 ID:PfG4KY3E - >>880
その失敗の本質は、いつでもnullポインタを入れられてしまうことだよ Nullableの元でもあるHaskellのMaybeモナドやScalaのOptionモナドは 無効を表現出来るが何ら脆弱と見られていない KotlinのNullableは効率のため単なる参照型変数にコンパイルされるが プログラム上は以下のようなコンテナと概念的には同じ sealed class Nullable<T> { open val isNull:Boolean get() = true open val value:T get() = throw NullPointerException() } class Some<T>(override val value:T): Nullable<T>() { override val isNull:Boolean get() = false } class None<T>: Nullable<T>()
|