kotlin 函数格式大赏

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

你答对了吗🤣

posted @ 2022-11-30 20:38  姜劭  阅读(23)  评论(0编辑  收藏  举报