Avatar
さっき社内で Kotlin で Optional 実装する話をしてて、 Nothing が bottom type なことと、 out を使ってうまく実装できておもしろいです。 sealed class Optional<out T> { class Some<out T>(val value: T): Optional<T>() class None(): Optional<Nothing>() } fun main(args: Array<String>) { val a: Optional<Int> = Optional.None() // OK }