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