列舉類最基本的用法是實現乙個型別安全的列舉。
列舉常量用逗號分隔,每個列舉常量都是乙個物件
enum class color
每乙個列舉都是列舉類的例項,它們可以被初始化
enum class color(val rgb: int)
預設名稱為列舉字元名,值從0開始。若需要指定值,則可以使用其建構函式
enum class shape(value:int)
列舉還支援以宣告自己的匿名類及相應的方法、以及覆蓋基類的方法。如
enum class protocolstate ,
talking ;
abstract fun signal(): protocolstate
}
如果列舉類定義任何成員,要使用分號將成員定義中的列舉常量定義分隔開
kotlin 中的列舉類具有合成方法,允許遍歷定義的列舉常量,並通過其名稱獲取列舉常數
enumclass.valueof(value: string): enumclass // 轉換指定 name 為列舉值,若未匹配成功,會丟擲illegalargumentexception
enumclass.values(): array// 以陣列的形式,返回列舉值
val name: string //獲取列舉名稱
val ordinal: int //獲取列舉值在所有列舉陣列中定義的順序
例項
enum class color
fun main(args: array)
自 kotlin 1.1 起,可以使用enumvalues()
和enumvalueof()
函式以泛型的方式訪問列舉類中的常量
enum class rgb
inline fun > printallvalues() )
}fun main(args: array)
Kotlin學習 Kotlin委託
委託模式是軟體設計模式中的一項基本技巧。在委託模式中,有兩個物件參與處理同乙個請求,接受請求的物件將請求委託給另乙個物件來處理。kotlin 直接支援委託模式,更加優雅,簡潔。kotlin 通過關鍵字 by 實現委託 類的委託即乙個類中定義的方法實際是呼叫另乙個類的物件的方法來實現的。以下例項中派生...
Kotlin學習筆記(三) Kotlin密封類
前言 密封類,可以理解為列舉,規定了有限個型別,不可以存在其他型別,但列舉每個列舉常量只存在乙個示例,但是密封類的子類可以有多個示例,所以可以將密封類看做是列舉的拓展,基於列舉,高於列舉,青出於藍而勝於藍。正文密封類和普通類的區別,在於密封類使用了sealed修飾符,雖然密封類也可以有子類,但是所有...
kotlin學習途徑
google i o 2017 首日 keynote 剛剛落幕,其中 google 宣布 android 系統開發全面支援kotlin 算是乙個非常重磅的新聞。之前對kotlin不是很了解,所以這段時間專門去學習了解這麼語言。最好的學習途徑就是去kotlin官網去學習 1.kotlin官方中文翻譯文...