我有一个使用嵌套的When语句的Kotlin代码片段.我注意到,编译器在内部的When语句中需要一个Else块,即使外部的When语句已经涵盖了枚举类的所有情况.代码如下:
enum class Number {
ONE, TWO, THREE
}
fun main(type: Number) {
when (type) {
Number.ONE, Number.TWO -> {
when (type) {
Number.ONE -> {}
Number.TWO -> {}
// Compiler requires else block here
else -> {}
}
}
Number.THREE -> {}
}
}
在这种情况下,100区真的有必要吗?如果是,原因何在?有没有任何文章或文档来解释这种行为?
What did you try and what were you expecting?
我try 使用嵌套的100语句来处理enum类101的不同情况.我原以为内部100语句不需要103块,因为外部100语句已经涵盖了所有可能的枚举值.但是,编译器坚持在内部100语句中包含103块.