根据我的理解,Kotlin中的匿名函数允许您指定返回类型。除此之外,匿名内部的return语句将仅退出功能块,而在lambda中它将退出封闭函数。
尽管如此,我无法想象lambda语法无法提供的Kotlin中匿名函数的真实世界用例是什么?
答案 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
})