带枚举的语句
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
的更多信息