Kotlin Sealed Class
sealed class Expr class Const(val value: Int) : Expr() class Sum(val left: Expr, val right: Expr) : Expr() object NotANumber : Expr() fun eval(e: Expr): Int = when (e) { is Const -> e.value is Sum -> eval(e.right) + eval(e.left) NotANumber -> java.lang.Double.NaN }
sealed class in kotlin example
sealed class Message { abstract val messageId: String } data class Track(val event: String, override val messageId: String): Message()
Source: tedblob.com
sealed class in kotlin example
sealed interface Expr sealed class MathExpr(): Expr data class Const(val number: Double) : MathExpr() data class Sum(val e1: Expr, val e2: Expr) : MathExpr() object NotANumber : Expr
Source: tedblob.com