gpt4 book ai didi

loops - 突破kotlin中的匿名函数

转载 作者:行者123 更新时间:2023-12-02 07:21:12 24 4
gpt4 key购买 nike

创建了一个测试用例来尝试展示我正在尝试做的事情。我不知道如何“停止”继续在匿名函数内部工作。在下面的示例中,如果答案正确,我想跳出“苹果”部分。下面的代码无法编译,因为它说的是 return@apple 而不是 return@banana,这是唯一有效的选项,但我在下面写它是为了尝试解释我想要实现的目标,并更好地理解如何去做类似的事情这个。

class FunctionBreakingTest {
@Test fun stopInMiddleOfLambda() {
var answer = "wrong"
doStuff apple@ {
doStuff banana@ {
answer = "correct"
if (answer == "correct") {
return@apple
}
answer = "wrong"
}

answer = "wrong"
}

assertEquals("correct", answer)
}

private fun doStuff(foo: () -> Unit) = foo.invoke()
}

最佳答案

您需要使 doStuff 成为一个 inline 函数:non-local return仅支持内联的 lambda。

private inline fun doStuff(foo: () -> Unit) = foo.invoke()

那么你的测试用例就通过了。

关于loops - 突破kotlin中的匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45766186/

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