when 是 Kotlin 中用於多分支判斷的表達式。它類似於其他程式語言中的 switch 或 case 陳述式,但比傳統的 switch 更靈活且功能強大。
when 表達式的基本結構如下:
when (expression) {
value1 -> {
// 當 expression 等於 value1 時執行這裡的程式碼
}
value2 -> {
// 當 expression 等於 value2 時執行這裡的程式碼
}
else -> {
// 當 expression 不等於任何已定義的值時執行這裡的程式碼
}
}
when 可以有多個分支,每個分支用 -> 分隔,可以根據需要定義多個分支,每個分支處理不同的情況。
when (dayOfWeek) {
1 -> println("星期一")
2 -> println("星期二")
3 -> println("星期三")
// ...
else -> println("其他天")
}
可以使用區間(range)來比較值,這樣可以更簡潔地處理多個連續值的情況。
when (score) {
in 90..100 -> println("優秀")
in 80 until 90 -> println("良好")
in 70 until 80 -> println("普通")
else -> println("需要改進")
}
when 也可以用於比較類型。可以使用 is 關鍵字來檢查變數的類型,並執行相應的程式碼。
when (value) {
is String -> println("這是一個字串")
is Int -> println("這是一個整數")
else -> println("未知類型")
}
如果省略了 when 的 expression 部分,則每個分支的條件將是布林表達式,並且首先為 true 的分支將被執行。
when {
condition1 -> println("條件1成立")
condition2 -> println("條件2成立")
else -> println("都不成立")
}
簡單來說,when可以使得代碼更具可讀性,並且可以減少使用大量 if-else 的需要。