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

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:Kotlin 密封類與接口

柚子快報邀請碼778899分享:Kotlin 密封類與接口

http://yzkb.51969.com/

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

密封類類似于枚舉類:枚舉類型的值集也受到限制,但每個枚舉常量僅作為一個實例存在,而密封類的子類可以有多個實例,每個實例都有自己的狀態(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?表達式的時候;如果能夠驗證語句覆蓋了所有情況,就不需要為該語句再添加一個?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` 子句,因為已經(jīng)覆蓋了所有的情況

}

柚子快報邀請碼778899分享:Kotlin 密封類與接口

http://yzkb.51969.com/

精彩內(nèi)容

評論可見,查看隱藏內(nèi)容

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

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

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

發(fā)布評論

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

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄