kotlin中是否可以使用标签或任何种类的功能,以便我们可以从调用函数中跳出main函数。 我想要的是当我从jumperFunction返回时想跳出这两个功能。
fun mainFunction(){
// some code and calling this function
jumperFunction()
}
fun jumperFunction{
// some code
return@mainFunction
}
答案 0 :(得分:2)
让jumperFunction()
返回一个布尔值,并使用该结果:
fun mainFunction() {
//...
if (!jumperFunction()) return
//...
}
//returns false if the calling function should return
fun jumperFunction(): Boolean {
//...
}
答案 1 :(得分:1)
不确定我是否了解您的用例,但是您可以使用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