帶列舉的語句
when
可用於匹配 enum
值:
enum class Day {
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
}
fun doOnDay(day: Day) {
when(day) {
Day.Sunday -> // Do something
Day.Monday, Day.Tuesday -> // Do other thing
Day.Wednesday -> // ...
Day.Thursday -> // ...
Day.Friday -> // ...
Day.Saturday -> // ...
}
}
正如你在第二種情況下可以看到的那樣(Monday
和 Tuedsay
),也可以組合兩個或更多 enum
值。
如果你的案例並非詳盡無遺,則編譯將顯示錯誤。你可以使用 else
來處理預設情況:
fun doOnDay(day: Day) {
when(day) {
Day.Monday -> // Work
Day.Tuesday -> // Work hard
Day.Wednesday -> // ...
Day.Thursday -> //
Day.Friday -> //
else -> // Party on weekend
}
}
儘管使用 if-then-else
構造可以做到同樣的事情,但是 when
可以處理丟失的 enum
值並使其更自然。
點選此處檢視有關 kotlin enum
的更多資訊