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 的型態一致。