val body = parseBody(req.body()) -6ren">
gpt4 book ai didi

kotlin - 从 Kotlin 中的 lambda 表达式显式返回

转载 作者:行者123 更新时间:2023-12-01 16:15:49 24 4
gpt4 key购买 nike

使用 Spark ,我最终得到了一些这样的代码:

post("/auth/login", { req, res ->
val body = parseBody(req.body())
val assertion = body["assertion"]
if (assertion == null) {
halt(400)
return null
}
// ...snip...lots more code
})

效果很好,除了...它无法编译 -- 我得到 'return' is not allowed here

可以将 lambda 的其余部分放在 else block 中,但为了最小化缩进我宁愿不这样做。

那么如何“短路”lambda 以返回 null?

最佳答案

在我的理解中,Lambda 不能使用 return,return 默认是针对函数的。

所以需要用一个标签来告诉return子句它将返回到哪里。我用这个:

f@ {
...
return@f null
}

关于kotlin - 从 Kotlin 中的 lambda 表达式显式返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34668933/

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