欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:Kotlin 密封類與接口

柚子快報(bào)邀請(qǐng)碼778899分享:Kotlin 密封類與接口

http://yzkb.51969.com/

密封的類和接口表示受限制的類層次結(jié)構(gòu),這些層次結(jié)構(gòu)提供了對(duì)繼承的更多控制;在定義密封類的模塊和包之外,不能出現(xiàn)其他子類;密封類的每個(gè)實(shí)例都有一個(gè)來(lái)自有限集的類型,該類型在編譯此類時(shí)是已知的;一旦編譯了具有密封接口的模塊,就不會(huì)出現(xiàn)新的實(shí)現(xiàn)

密封類類似于枚舉類:枚舉類型的值集也受到限制,但每個(gè)枚舉常量?jī)H作為一個(gè)實(shí)例存在,而密封類的子類可以有多個(gè)實(shí)例,每個(gè)實(shí)例都有自己的狀態(tài)

使用 sealed?聲明密封的類或接口

sealed interface Error

sealed class IOError(): Error

class FileReadError(val file: File): IOError()

class DatabaseError(val source: DataSource): IOError()

object RuntimeError : Error

使用密封類的關(guān)鍵好處在于使用?when?表達(dá)式的時(shí)候;如果能夠驗(yàn)證語(yǔ)句覆蓋了所有情況,就不需要為該語(yǔ)句再添加一個(gè)?else?子句

fun log(e: Error) = when(e) {

is FileReadError -> { println("Error while reading file ${e.file}") }

is DatabaseError -> { println("Error while reading from database ${e.source}") }

is RuntimeError -> { println("Runtime error") }

// 不再需要 `else` 子句,因?yàn)橐呀?jīng)覆蓋了所有的情況

}

柚子快報(bào)邀請(qǐng)碼778899分享:Kotlin 密封類與接口

http://yzkb.51969.com/

精彩內(nèi)容

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19477795.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄