【发布时间】:2020-02-05 17:53:19
【问题描述】:
我正在研究 Kotlin 的内联函数 Kotiln 的 lambda,,,
以下代码是关于 Kotlin 的内联函数示例
我知道 Kotlin 的 lambda 中不能有“return”
但是什么是“返回”(在第 4 行)? 为什么lambda中有“返回”?????? 怎么样??
(下面的代码运行良好,,,)
fun main() {
shortFunc(3){
println("First call: $it")
return
}
}
inline fun shortFunc(a: Int, out: (Int)->Unit){
println("Before calling out()")
out(a)
println("After calling out()")
}
【问题讨论】:
-
当一个高阶函数被标记为
inline时,如果可能,它的函数参数也将被内联。如果您将 lambda 函数传递给这样的函数,那么您将能够从 lambda 内部的外部函数(在本例中为main)返回,因为它是内联的。
标签: kotlin lambda inline-functions