Taiwan Kotlin User Group 的網站,在台灣推廣 Kotlin 程式語言,舉辦相關活動。如果對 Kotlin 有興趣,想要多瞭解一些,歡迎來我們的社群一起聚會!
類似其他語言有的列舉
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 讀書會 !