Kotlin 简明教程
Kotlin - When Expression
考虑一下当你需要检查大量条件的情况。虽然你可以使用 if..else if 表达式来处理这种情况,但Kotlin提供了 when 表达式以更友善的方式来处理这种情况。与编写许多 if…else if 表达式相比,使用 when 表达式更加简单和干净。如以下示例所示,Kotlin when 表达式在许多备选方案中估算一段代码。
Kotlin when 按顺序依次检查其参数与所有分支,直到满足某个分支条件。
Example
fun main(args: Array<String>) {
val day = 2
val result = when (day) {
1 -> "Monday"
2 -> "Tuesday"
3 -> "Wednesday"
4 -> "Thursday"
5 -> "Friday"
6 -> "Saturday"
7 -> "Sunday"
else -> "Invalid day."
}
println(result)
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
Tuesday
Kotlin when as Statement
Kotlin when 既可以用作表达式,也可以用作语句,就像Java中的switch语句一样。如果它用作表达式,则首个匹配分支的值将变为整体表达式的值。
Example
让我们再次编写上面的示例而不使用表达式形式:
fun main(args: Array<String>) {
val day = 2
when (day) {
1 -> println("Monday")
2 -> println("Tuesday")
3 -> println("Wednesday")
4 -> println("Thursday")
5 -> println("Friday")
6 -> println("Saturday")
7 -> println("Sunday")
else -> println("Invalid day.")
}
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
Tuesday
Kotlin when with block of code
Kotlin when 分支可以作为用花括号括起来的代码块放置。
Example
fun main(args: Array<String>) {
val day = 2
when (day) {
1 -> {
println("First day of the week")
println("Monday")
}
2 -> {
println("Second day of the week")
println("Tuesday")
}
3 -> {
println("Third day of the week")
println("Wednesday")
}
4 -> println("Thursday")
5 -> println("Friday")
6 -> println("Saturday")
7 -> println("Sunday")
else -> println("Invalid day.")
}
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
Second day of the week
Tuesday