这个问题是关于 fun() 与 lambda 块定义和范围的问题。
我尝试用两种方式定义表达式。这是我尝试过的:
val myFunction = fun(){
println("i am in a function")
}
//but i also tried doing this:
val myFunction = {
println("i am in a lambda")
}
我的问题是我不知道它们是否等效且相同?
差异最好描述于https://kotlinlang.org/docs/reference/lambdas.html#anonymous-functions https://kotlinlang.org/docs/reference/lambdas.html#anonymous-functions:
-
匿名函数允许您指定返回类型,而 lambda 则不允许。
-
如果不这样做,返回类型推断将像普通函数一样工作,而不是像 lambda 那样。
-
正如@dyukha所说,其含义return
是不同的:
不带标签的 return 语句始终从使用 fun 关键字声明的函数返回。这意味着 lambda 表达式内的 return 将从封闭函数返回,而匿名函数内的 return 将从匿名函数本身返回。
-
没有隐含的it
参数,或解构。
是的,您的具体情况将是等效的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)