枚举类
枚举类定义:enum class
enum class Logo {
Action1, Action2, Action3
}
fun main() {
val act1Str: String = Logo.Action1.name
val act1id: Int = Logo.Action1.ordinal
val act2Str: String = Logo.Action2.name
val act2id: Int = Logo.Action2.ordinal
}
枚举类定义构造器
enum class Logo2(val id: Int) {
Action1(0), Action2(1)
}
实现接口
enum class Logo3 : Runnable {
Action1, Action2;
override fun run() {
println("Kotlin")
}
}
enum class Logo4 : Runnable {
Action1 {
override fun run() {
println("Action1")
}
},
Action2 {
override fun run() {
println("Action2")
}
}
}
用于分支表达式
fun main() {
val logo: Logo = Logo.Action1
val value = when (logo) {
Logo.Action1 -> println("I am Action1")
Logo.Action2 -> println("I am Action2")
Logo.Action3 -> println("I am Action3")
}
}
枚举的区间用法
fun main() {
val range: ClosedRange<Logo> = Logo.Action1..Logo.Action2
val r1 = Logo.Action2
val isInRange = r1 in range
}
枚举类
枚举类定义:enum class
enum class Logo {
Action1, Action2, Action3
}
fun main() {
val act1Str: String = Logo.Action1.name
val act1id: Int = Logo.Action1.ordinal
val act2Str: String = Logo.Action2.name
val act2id: Int = Logo.Action2.ordinal
}
枚举类定义构造器
enum class Logo2(val id: Int) {
Action1(0), Action2(1)
}
实现接口
enum class Logo3 : Runnable {
Action1, Action2;
override fun run() {
println("Kotlin")
}
}
enum class Logo4 : Runnable {
Action1 {
override fun run() {
println("Action1")
}
},
Action2 {
override fun run() {
println("Action2")
}
}
}
用于分支表达式
fun main() {
val logo: Logo = Logo.Action1
val value = when (logo) {
Logo.Action1 -> println("I am Action1")
Logo.Action2 -> println("I am Action2")
Logo.Action3 -> println("I am Action3")
}
}
枚举的区间用法
fun main() {
val range: ClosedRange<Logo> = Logo.Action1..Logo.Action2
val r1 = Logo.Action2
val isInRange = r1 in range
}