Kotlin 概述
Kotlin 由 JetBrains 开发,是一种在 JVM(Java 虚拟机)上运行的静态类型编程语言
Kotlin 旨在提高开发者的编码效率和安全性,同时保持与 Java 的高度互操作性
Kotlin 是 Android 应用开发的首选语言,也可以与 Java 一样用于服务器端开发
一、枚举
1、定义枚举
enum class Day {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
2、使用枚举
var today: Day = Day.MONDAY
println(today)
# 输出结果
MONDAY
- 获取更多枚举信息
var today: Day = Day.MONDAY
println(today.ordinal)
println(today.name)
# 输出结果
0
MONDAY
3、遍历枚举
for (day in Day.values()) {
println(day)
}
# 输出结果
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY
二、枚举的属性与方法
1、定义枚举
- 定义枚举,同时定义属性与方法
enum class TrafficLight(var duration: Int) {
RED(30),
GREEN(45),
YELLOW(5);
// 计算整个信号灯周期的总时间
fun totalCycleTime(): Int {
var totalTime = 0
for (light in TrafficLight.values()) {
totalTime += light.duration
}
return totalTime
}
// 获取下一个信号灯颜色
fun nextLight(): TrafficLight {
val index = TrafficLight.values().indexOf(this) + 1
return if (index < TrafficLight.values().size) {
TrafficLight.values()[index]
} else {
// 循环回到第一个信号灯
TrafficLight.values()[0]
}
}
}
2、使用枚举的属性与方法
- 使用枚举的属性
var totalTime = TrafficLight.RED.totalCycleTime()
println(totalTime)
# 输出结果
80
- 使用枚举的方法
var nextLight = TrafficLight.RED.nextLight()
println(nextLight)
# 输出结果
GREEN
三、枚举的扩展方法
1、定义枚举
enum class TrafficLight(var duration: Int) {
RED(30),
GREEN(45),
YELLOW(5);
// 计算整个信号灯周期的总时间
fun totalCycleTime(): Int {
var totalTime = 0
for (light in TrafficLight.values()) {
totalTime += light.duration
}
return totalTime
}
// 获取下一个信号灯颜色
fun nextLight(): TrafficLight {
val index = TrafficLight.values().indexOf(this) + 1
return if (index < TrafficLight.values().size) {
TrafficLight.values()[index]
} else {
// 循环回到第一个信号灯
TrafficLight.values()[0]
}
}
}
2、定义枚举的扩展方法
fun TrafficLight.description(): String {
return when (this) {
TrafficLight.RED -> "红灯"
TrafficLight.YELLOW -> "黄灯"
TrafficLight.GREEN -> "绿灯"
}
}
// 简写
fun TrafficLight.description(): String = when (this) {
TrafficLight.RED -> "红灯"
TrafficLight.YELLOW -> "黄灯"
TrafficLight.GREEN -> "绿灯"
}
3、使用枚举的扩展方法
val nowLight = TrafficLight.RED
println(nowLight.description())
# 输出结果
红灯