Taiwan Kotlin User Group

Logo

Taiwan Kotlin User Group 的網站,在台灣推廣 Kotlin 程式語言,舉辦相關活動。如果對 Kotlin 有興趣,想要多瞭解一些,歡迎來我們的社群一起聚會!

View My GitHub Profile

Kotlin Enum Class 範例

類似其他語言有的列舉

Kotlin 設計了 enum class 的語法

宣告 enum class

enum class Direction {
    NORTH, SOUTH, EAST, WEST
}

宣告後可以透過類別名存取

val direction = Direction.NORTH
println(direction) // NORTH

由於 enum 的宣告

可以讓編譯器確定資料的可能個數

如果在條件式內列舉所有可能

就不需要宣告 else

val message = when (direction) {
	Direction.NORTH -> "facing north"
	Direction.SOUTH -> "facing south"
	Direction.EAST -> "facing east"
	Direction.WEST -> "facing west"
}

enum 也可以加上屬性和函數

透過分號來區分常數和其他區塊

enum class Color(val rgb: Int) {
    RED(0xFF0000),
    GREEN(0x00FF00),
    BLUE(0x0000FF),
    PINK(0xFFCCCC);

    fun containsRed() = (this.rgb and 0xFF0000 != 0)
}

宣告後我們就可以對變數正常存取

val red = Color.RED
println(Integer.toHexString(red.rgb)) // ff0000
println(red.containsRed()) // true

也可以直接宣告常數後存取

println(Color.BLUE.containsRed()) // false
println(Color.PINK.containsRed()) // true

想看更多範例嗎?

可以看看

或加入 kotlin.tips 的 Kotlin 讀書會