如何使用 Enum Classes

如何使用 Enum Classes

Enum 列舉,通常拿來宣告一個有限的常數項,透過這個列舉類別就可以直接取的對應的值,它不像一般常數項一定要給訂一個值,它的名稱就代表了值,每一個常數量都是一個 instance,所以你可以透過 Enum 直接存取每一個常數項。

說明

一個基本的用法如下。

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

你也可以這樣宣告。

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

使用方法如下。

Color.RED

從外部傳進去的參數可以讓你透過以下的方式取得每個常數項的值。

Color.RED.rgb

這樣還是不太理解的話,再舉一個例子,就可以比較清楚明白。

enum class Color(val rgb: String) {
    RED("red"),
    GREEN("green"),
    BLUE("blue")
}


fun main(args: Array<String>) {
    print(Color.BLUE.rgb) //blue
}

可以看出端倪了,原來傳入的參數對應著每一個 instance 括弧內的值,因此,傳入的型態會跟,instance 的型態一致。

參考資料

https://kotlinlang.org/docs/reference/enum-classes.html