fun main() { // 一个有引用的lambda表达式 val f11: (Int, Int) -> Unit = {n1, n2 -> println("f11 is ${n1 * n2}") } // 普通函数 fun f0(n1: Int, n2: Int, lambda: (Int, Int) -> Unit) { println("f0 正在运行") lambda(n1, n2) } f0(1, 2, f11) // 等号右面是函数体 val f1: (n1: Int, n2: Int, lambda: (Int, Int) -> Unit) -> Unit = {n1, n2, lambda -> println("f1 正在运行") lambda.invoke(n1, n2) } f1(1, 2, f11) // 用f2给lambda传参 fun f2(n1: Int, n2: Int, lambda: (Int, Int) -> Unit) = lambda.invoke(n1, n2) f2(3, 4, f11) // 等号右面是一个匿名函数,作为f3的返回结果 fun f3(n1: Int, n2: Int, lambda: (Int, Int) -> Unit) = { println("f3 正在运行") lambda.invoke(n1, n2) } f3(5, 6, f11)() }
输出结果:
f0 正在运行
f11 is 2
f1 正在运行
f11 is 2
f11 is 12
f3 正在运行
f11 is 30
你答对了吗
标签:Int,kotlin,格式,大赏,n1,n2,f11,Unit,lambda From: https://www.cnblogs.com/jiang448/p/16939675.html