繁体   English   中英

Kotlin. Java 施工时的中断选择

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM