Kotlin匿名函数的用法是什么?

5

据我了解,Kotlin中的匿名函数允许您指定返回类型。除此之外,在匿名函数内部使用return语句只会退出该函数块,而在lambda表达式中,它将退出封闭函数。

然而,我无法想象在Kotlin中使用匿名函数的实际用例,而Lambda语法不能提供?

Kotlin高阶函数和Lambda

2个回答

6

应用场景是,有时我们希望明确指定返回类型。在这种情况下,我们可以使用所谓的匿名函数,例如:

fun(a: String, b: String): String = a + b

或者更好的方式是返回控制,例如:
fun(): Int {
    try {
        // some code
        return result
    } catch (e: SomeException) {
        // handler
        return badResult
        }
}

2

匿名函数(也称为函数表达式)在需要传递具有复杂逻辑和希望早期返回起作用的大型lambda时非常方便。例如,如果您在spark-java中编写调度程序:

get("/", fun(request, response) {
    // Your web page here
    // You can use `return` to interrupt the handler 
})

get("/") { req, res -> if (sth) return@get; dosth() } 运行得非常好。 - msrd0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接