据我了解,Kotlin中的匿名函数允许您指定返回类型。除此之外,在匿名函数内部使用return语句只会退出该函数块,而在lambda表达式中,它将退出封闭函数。
然而,我无法想象在Kotlin中使用匿名函数的实际用例,而Lambda语法不能提供?
据我了解,Kotlin中的匿名函数允许您指定返回类型。除此之外,在匿名函数内部使用return语句只会退出该函数块,而在lambda表达式中,它将退出封闭函数。
然而,我无法想象在Kotlin中使用匿名函数的实际用例,而Lambda语法不能提供?
应用场景是,有时我们希望明确指定返回类型。在这种情况下,我们可以使用所谓的匿名函数,例如:
fun(a: String, b: String): String = a + b
fun(): Int {
try {
// some code
return result
} catch (e: SomeException) {
// handler
return badResult
}
}
匿名函数(也称为函数表达式)在需要传递具有复杂逻辑和希望早期返回起作用的大型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