[英]Kotlin. Java break alternative for when construction
我需要像 Java 中when
分支一样break
。 从 Kotlin 1.7.0 我得到错误
当表达必须详尽无遗时
现在我需要添加一个分支else
。 在else
里面,我只想从when
退出。
我可以使用return,但是在这种情况下, when
块之后的所有代码都不会执行,我们将退出整个function。这是一个例子:
private fun testFun(a: Int) {
when(a) {
5 -> println("this is 5")
10 -> println("this is 10")
else -> return
}
println("This is end of func") // this will not call
}
我以这段代码为例。 when
与枚举或 boolean 一起使用时,问题是相关的。
我也可以使用这个结构:else -> {}。 但我看起来不是很清楚。 请告诉我是否有任何方法可以执行 default: break; 正如我们在 Java 中所做的那样。
首先,这里不需要else
,因为这是一个when
语句,绑定值为Int
。 在这种情况下需要详尽无遗
val someValue = when(a) {
5 -> "this is 5"
10 -> "this is 10"
else -> "something else" // now you need the "else" branch
}
所以你不必首先写else -> {}
。
也就是说,如果你出于某种原因非常想在这里写break
这个词,你可以定义:
val `break` = Unit
现在你可以这样做:
// yes, this means you can also do "else -> Unit"
// but if you find "else -> {}" unclear, "else -> Unit" will probably be even more so
else -> `break`
但这非常令人困惑,因为 Kotlin 中的break
类型为Nothing
,而不是Unit
。 这样做需要您自担风险。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.