我正在研究 Kotlin 的内联函数 科蒂尔恩的λ,,,
下面的代码是关于 Kotlin 的内联函数示例
我知道"返回"不能在 Kotlin 中的 lambda 中
但是什么是"返回"(在第 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()")
}
一般来说,在 lambda 中不允许使用return
,但shortFunc
被标记为inline
。这允许非本地返回,在这种特定情况下,return
将使代码从封闭函数返回 - 这是main
,因此您的程序终止。
您可以在此处和此处阅读有关非本地退货的更多信息