Android 在Kotlin中有没有办法从一个函数跳出另一个函数?

Android 在Kotlin中有没有办法从一个函数跳出另一个函数?,android,function,kotlin,label,Android,Function,Kotlin,Label,kotlin中是否有任何方法使用标签或任何类型的特性,以便我们可以从调用函数跳出主函数。 我想要的是,当我从jumperFunction返回时,我想要跳出这两个函数 fun mainFunction(){ // some code and calling this function jumperFunction() } fun jumperFunction{ // some code return@mainFunction } 让jumperFunction()返回一个布尔值,并使用该结果:

kotlin中是否有任何方法使用标签或任何类型的特性,以便我们可以从调用函数跳出主函数。 我想要的是,当我从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 {
    //...
}
jumperFunction()
返回一个布尔值,并使用该结果:

fun mainFunction() {
    //...
    if (!jumperFunction()) return
    //...
}

//returns false if the calling function should return
fun jumperFunction(): Boolean {
    //...
}

我不确定我是否理解您的用例,但您可以理解

例如:

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

请注意,它在block之后跳过
[Baz]

不确定我是否理解您的用例,但您可以这样做

例如:

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

请注意,它在block之后跳过
[Baz],这不是一种常见的函数行为吗?我想会有一些方法来处理这种情况,比如使用标签之类的。直接从被调用函数控制流的唯一方法是通过异常。这不是一种常见的函数行为吗?我认为会有一些方法来处理这种情况,比如使用标签之类的。直接从被调用函数控制流的唯一方法是通过异常。