找人做网站需要多少钱,关键词排名优化流程,四川建设厅住房和城乡建设厅,3网站建设使用 enum 修饰符#xff1b;每个枚举常量都是一个对象#xff0c;枚举常量以逗号分隔
// 枚举类
enum class Direction {NORTH, SOUTH, WEST, EAST
}// 每一个枚举都是枚举类的实例#xff0c;所以可以这样初始化
enum class Color(val rgb: Int) {RED(0xFF0000),GREEN(0x…使用 enum 修饰符每个枚举常量都是一个对象枚举常量以逗号分隔
// 枚举类
enum class Direction {NORTH, SOUTH, WEST, EAST
}// 每一个枚举都是枚举类的实例所以可以这样初始化
enum class Color(val rgb: Int) {RED(0xFF0000),GREEN(0x00FF00),BLUE(0x0000FF)
}
枚举常量可以声明其带有相应方法以及覆盖了基类方法的自身匿名类
enum class ProtocolState {WAITING {override fun signal() TALKING},TALKING {override fun signal() WAITING};// 如果枚举类定义任何成员那么使用分号将成员定义与常量定义分隔开abstract fun signal(): ProtocolState
} 一个枚举类可以实现接口但不能从类继承
enum class IntArithmetics : BinaryOperatorInt, IntBinaryOperator {PLUS {override fun apply(t: Int, u: Int): Int t u},TIMES {override fun apply(t: Int, u: Int): Int t * u};override fun applyAsInt(t: Int, u: Int) apply(t, u)
}
枚举常量的列举或获取
// 假设枚举类的名称是 EnumClass
EnumClass.valueOf(value: String): EnumClass
EnumClass.values(): ArrayEnumClassenum class RGB { RED, GREEN, BLUE }fun main() {for (color in RGB.values()) println(color.toString()) // prints RED, GREEN, BLUEprintln(The first color is: ${RGB.valueOf(RED)}) // prints The first color is: REDfor (color in RGB.entries) println(color.toString())// prints RED, GREEN, BLUE
}
可以使用 enumValuesT() 与 enumValueOfT() 函数以泛型的方式访问枚举类中的常量
enum class RGB { RED, GREEN, BLUE }inline fun reified T : EnumT printAllValues() {print(enumValuesT().joinToString { it.name })
}printAllValuesRGB() // 输出 RED, GREEN, BLUE
每个枚举常量也都具有这两个属性name 与 ordinal 用于在枚举类声明中获取其名称与自 0 起的位置
enum class RGB { RED, GREEN, BLUE }fun main() {println(RGB.RED.name) // prints REDprintln(RGB.RED.ordinal) // prints 0
}