Kotlin匿名功能用例?

时间:2017-04-02 08:44:02

标签: kotlin

根据我的理解,Kotlin中的匿名函数允许您指定返回类型。除此之外,匿名内部的return语句将仅退出功能块,而在lambda中它将退出封闭函数。

尽管如此,我无法想象lambda语法无法提供的Kotlin中匿名函数的真实世界用例是什么?

Kotlin Higher Order Function and Lambda

2 个答案:

答案 0 :(得分:4)

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

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

或者更好的回归控制,如:

fun(): Int {
    try {
        // some code
        return result
    } catch (e: SomeException) {
        // handler
        return badResult
        }
}

答案 1 :(得分:1)

当你必须传递一个具有复杂逻辑的巨大lambda并希望早期返回工作时,匿名函数(a.k.a函数表达式)非常方便。例如,如果您在spark-java中编写调度程序:

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