when 表达式
when 替代 switch、类型匹配、区间匹配、无参 when
when 表达式
when 是 Kotlin 的超级 switch——支持类型匹配、区间、任意表达式。
学完本章你将: 掌握 when 多分支、类型匹配、无参 when。
基本用法
kotlin
val x = 2
when (x) {
1 -> println("一")
2 -> println("二")
3, 4 -> println("三或四") // 多个值
in 5..10 -> println("五到十") // 区间
else -> println("其他") // 默认(必须)
}
when 作为表达式
kotlin
val result = when (x) {
1 -> "一"
2 -> "二"
else -> "其他"
}
类型匹配
kotlin
fun describe(obj: Any): String = when (obj) {
is String -> "字符串: ${obj.length}"
is Int -> "整数: $obj"
is Boolean -> if (obj) "真" else "假"
else -> "未知类型"
}
无参 when
kotlin
val score = 85
val grade = when {
score >= 90 -> "A"
score >= 80 -> "B"
score >= 60 -> "C"
else -> "D"
}
// 每条分支是布尔条件——更灵活