我需要break像when分支機構中的 Java 一樣。從 Kotlin 1.7.0 我得到錯誤
當表達必須詳盡無遺時
現在我需要添加一個分支else。在里面else我只想退出when。
我可以使用 return,但在這種情況下,when塊之后的所有代碼都不會執行,我們將退出整個函式。這是一個例子:
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與列舉或布林值一起使用時,問題是相關的。
我也可以使用這個結構:else -> {}。但我看起來不是很清楚。請告訴我是否有任何方法可以執行 default: break; 就像我們在 Java 中所做的那樣。
uj5u.com熱心網友回復:
首先,您不需要elsehere,因為這是一條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`
不過這非常令人困惑,因為break在 Kotlin 中有型別Nothing,而不是Unit。這樣做需要您自擔風險。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/534396.html
上一篇:json變數末尾的額外新行
下一篇:如何僅在特定片段中啟用導航抽屜?
