日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

kotlin sealed 中_Kotlin sealed class

發(fā)布時(shí)間:2024/4/19 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kotlin sealed 中_Kotlin sealed class 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

密封類的概念對(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。