Kotlin中when
语句相较于switch
语句的优势:
- 类型安全:
when
语句在Kotlin中可以接受多种类型的参数,包括对象、可空类型等,而Java的switch
语句在Java 7之前只能接受byte
、short
、char
、int
及其包装类型、enum
类型,Java 7开始支持String
类型。例如在Kotlin中可以对自定义对象进行when
判断。
- 简洁性:
when
语句可以更简洁地表达复杂逻辑,它可以作为表达式返回值,这在很多场景下减少了额外变量的定义。例如在when
中可以直接返回一个值而无需像switch
那样使用多个break
语句。
- 区间和集合匹配:
when
语句支持区间匹配(如in
关键字)和集合匹配(in
关键字用于判断元素是否在集合中),而switch
语句没有直接支持这些特性。
示例代码:
fun main() {
val dayNumber = 3
val dayName = when (dayNumber) {
1 -> "星期一"
2 -> "星期二"
3 -> "星期三"
4 -> "星期四"
5 -> "星期五"
6 -> "星期六"
7 -> "星期日"
else -> "无效的数字"
}
println(dayName)
}