Kotlin 枚举类


Kotlin 枚举类

枚举类是 Kotlin 语言中的一种特殊类型,在一定的范围内定义一些常量。

定义方式

最简单定义方式

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

设置枚举类构造函数和属性

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

使用枚举类

val north = Direction.NORTH
val red = Color.RED

枚举类常用函数

values()

获取枚举类中所有的值。

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

fun main() {
    val values = Direction.values()
    values.forEach { println(it) }
}

输出结果:

NORTH
SOUTH
WEST
EAST

valueOf()

根据枚举类中定义的常量名获取对应的常量。

enum class Gender {
    MALE, FEMALE
}

fun main() {
    val male = Gender.valueOf("MALE")
    val female = Gender.valueOf("FEMALE")
    println(male) // MALE
    println(female) // FEMALE
}

ordinal

获取枚举类中常量的位置,即下标。

enum class Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

fun main() {
    println(Day.MONDAY.ordinal) // 0
    println(Day.TUESDAY.ordinal) // 1
    println(Day.SATURDAY.ordinal) // 5
}

自定义方法

可以在枚举类中定义方法。

enum class Week(val value: Int) {
    MONDAY(1),
    TUESDAY(2),
    WEDNESDAY(3),
    THURSDAY(4),
    FRIDAY(5),
    SATURDAY(6),
    SUNDAY(7);

    fun isWeekend(): Boolean {
        return this == SATURDAY || this == SUNDAY
    }
}

fun main() {
    println(Week.MONDAY.isWeekend()) // false
    println(Week.SATURDAY.isWeekend()) // true
}

总结

枚举类是 Java 和 Kotlin 中的常用数据类型,用于在一定的范围内定义一些常量。Kotlin 的枚举类定义比 Java 更加简洁,可以自定义属性和方法。更多枚举类相关内容请参考Kotlin官方文档