是否有科特林使用标签或其它相似的功能,使我们可以从调用函数跳出主功能的任何方式。我想要的是当我从jumperFunction我想跳出两者的功能恢复。
fun mainFunction(){
// some code and calling this function
jumperFunction()
}
fun jumperFunction{
// some code
return@mainFunction
}
有jumperFunction()
返回一个布尔值,并使用该结果:
fun mainFunction() {
//...
if (!jumperFunction()) return
//...
}
//returns false if the calling function should return
fun jumperFunction(): Boolean {
//...
}
不知道我理解你的使用情况,但你可以有non-local returns with inlined lambdas。
例:
fun main() {
baz {
println("Inside lambda")
return
}
}
inline fun baz(block: () -> Unit) {
println("[Baz] Before block")
block()
println("[Baz] After block")
}
将打印:
[Baz] Before block
Inside lambda
需要注意的是它跳过[Baz] After block