当前位置:  开发笔记 > 大数据 > 正文

从Kotlin中的lambda表达式中明确返回

如何解决《从Kotlin中的lambda表达式中明确返回》经验,为你挑选了1个好方法。

使用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块中,但我宁愿不想最大限度地减少压痕.

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



1> user1453345..:

在我的理解中,Lambda不能使用return,默认情况下返回的是函数.

所以你需要使用一个标签告诉return子句它将返回的位置.我用这个:

f@ {
 ...
 return@f null
}

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有