kotlin sealed 中_Kotlin sealed class
密封類的概念對于我這種從古代語言進化到現代語言的老古董來說還是有點繞騰的啊!
1.?密封類用來表示受限的類繼承結構
解釋:類中 元素值限制在某一個集合之中
2.?密封類可以有子類,但是所有的子類都必須要內嵌在密封類中
解釋:子類的屬性都能通過密封類的"."點操作來訪問
3. 密封類主要解決了值域確定性問題,即,密封類的取值只能在所有派生類中
解釋:when語句里只要考慮到所有密封類值類型判斷,我們就可以省去when的else子句
我們用一個demo來演示
//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")
}
//結果
# kotlinc test.kt -include-runtime -d test.jar
# java -jar test.jar
result is 32.242000000000004
Finally:
我喜歡kotlin,但不能說我喜歡java,雖然我沒有做過太多java開發,但也研究過它。
應該說隨著歷史的發展,JVM會繼續壯大,但JAVA會退出廣大舞臺的。
未來是屬于VM的,因為所有的智能硬件都有一顆一樣的心!再也不會有“本地”之說了,大家拭目以待吧!
總結
以上是生活随笔為你收集整理的kotlin sealed 中_Kotlin sealed class的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sklearn svm如何选择核函数_使
- 下一篇: exfat linux 驱动_(实例)L