帶列舉的語句

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 ->   // ...
    }
}

正如你在第二種情況下可以看到的那樣(MondayTuedsay),也可以組合兩個或更多 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 的更多資訊