kotlin sealed 中_Kotlin sealed class
密封類的概念對(duì)于我這種從古代語(yǔ)言進(jìn)化到現(xiàn)代語(yǔ)言的老古董來(lái)說(shuō)還是有點(diǎn)繞騰的啊!
1.?密封類用來(lái)表示受限的類繼承結(jié)構(gòu)
解釋:類中 元素值限制在某一個(gè)集合之中
2.?密封類可以有子類,但是所有的子類都必須要內(nèi)嵌在密封類中
解釋:子類的屬性都能通過(guò)密封類的"."點(diǎn)操作來(lái)訪問(wèn)
3. 密封類主要解決了值域確定性問(wèn)題,即,密封類的取值只能在所有派生類中
解釋:when語(yǔ)句里只要考慮到所有密封類值類型判斷,我們就可以省去when的else子句
我們用一個(gè)demo來(lái)演示
//test.kt
sealed class Expr
data class Const(val number: Double) : Expr()
data class Sum(val e1: Expr, val e2: Expr) : Expr()
object NotANumber : Expr()
fun eval(expr: Expr): Double = when (expr) {
is Const -> expr.number
is Sum -> eval(expr.e1) + eval(expr.e2)
NotANumber -> Double.NaN
}
fun main(args: Array) {
val result = eval(Sum(Const(12.567), Const(19.675)))
println("result is $result")
}
//結(jié)果
# kotlinc test.kt -include-runtime -d test.jar
# java -jar test.jar
result is 32.242000000000004
Finally:
我喜歡kotlin,但不能說(shuō)我喜歡java,雖然我沒(méi)有做過(guò)太多java開(kāi)發(fā),但也研究過(guò)它。
應(yīng)該說(shuō)隨著歷史的發(fā)展,JVM會(huì)繼續(xù)壯大,但JAVA會(huì)退出廣大舞臺(tái)的。
未來(lái)是屬于VM的,因?yàn)樗械闹悄苡布加幸活w一樣的心!再也不會(huì)有“本地”之說(shuō)了,大家拭目以待吧!
總結(jié)
以上是生活随笔為你收集整理的kotlin sealed 中_Kotlin sealed class的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: sklearn svm如何选择核函数_使
- 下一篇: 唐尼vr眼镜好吗_科普:眼镜片有哪些种类