是否有任何科特林方式从另一个函数跳出一个功能呢?

问题描述 投票:0回答:2

是否有科特林使用标签或其它相似的功能,使我们可以从调用函数跳出主功能的任何方式。我想要的是当我从jumperFunction我想跳出两者的功能恢复。

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

fun jumperFunction{
// some code
return@mainFunction
}
android function kotlin label
2个回答
2
投票

jumperFunction()返回一个布尔值,并使用该结果:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.