Kotlin中有什么方法可以从一个功能中跳出另一个功能?

时间:2019-02-05 12:57:32

标签: android function kotlin label

kotlin中是否可以使用标签或任何种类的功能,以便我们可以从调用函数中跳出main函数。 我想要的是当我从jumperFunction返回时想跳出这两个功能。

fun mainFunction(){
// some code and calling this function
jumperFunction()
}

fun jumperFunction{
// some code
return@mainFunction
}

2 个答案:

答案 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