gpt4 book ai didi

function - 如何在 kotlin 的内部函数内部从顶级函数返回?

转载 作者:行者123 更新时间:2023-12-05 03:47:22 26 4
gpt4 key购买 nike

有两个函数,比如func1func2func2func1 的内部函数,基于我希望从 func1 返回的条件,这意味着结束 func1 的执行。我如何在 Kotlin 中做到这一点?

fun func1(){
fun func2(){
if(someCondition){
...

return@func1 //How do I do this? since it says return not allowed here
}
}

...

func2()
}

最佳答案

这在所有情况下都没有意义,因为在某些情况下嵌套函数的生命周期可能会超过包含函数的范围。这是一个例子:

var x: () -> Unit = {}

fun func1() {
fun func2() {}

x = ::func2
}

在这里,允许从 func2 返回 func1 是没有意义的。在调用 x 时,可能甚至没有对 func1 的主动调用。这基本上是非本地返回的主题,您需要内联函数(参见 the official documentation)。不幸的是,这些不能作为本地函数使用(至少现在还不能)。

对于您的特定情况,您可能无法通过使用 func2 的返回值并在 中检查它来发出您希望从 func1 返回的信号>功能1。 (或者异常,不适合用于这样的控制流。)

关于function - 如何在 kotlin 的内部函数内部从顶级函数返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64879934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com