12.枚举

由enum修饰的类

enum class LogLevel{
    VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT
}

kotlin中枚举类可以有构造器以及成员方法

enum class LogLevel1(val id: Int){
    VERBOSE(0), DEBUG(1), INFO(2), WARN(3), ERROR(4), ASSERT(5);

    fun getTag(): String{
        return "$id, $name"
    }

    override fun toString(): String {
        return "$name, $ordinal"
    }
}

kotlin中enum类提供一些内置成员属性和方法

fun main() {
    println(LogLevel.DEBUG.ordinal)//DEBUG在LogLevel中的排序
    LogLevel.values().map(::println)//LogLevel中定义的所有值
}

可以提升代码的表现力,也有一定的性能开销

你可能感兴趣的:(12.枚举)