Kotlin高阶函数——写法的演变过程

65 阅读1分钟

一、高阶函的定义

// TODO 3 多个Lambda 历史演化过程: 1 2 3 4 【参数一、二,是不同的lambda,输入为Int】
fun show2(lamba1: (Int) -> Unit, lamba2: (Int) -> Unit) {
    lamba1(100)
    lamba2(200)
}
// TODO 1 历史演化过程: 1 2 3 4 【参数一:有默认参数,参数二:lambda输入是参数一】
fun show(str:String = "Haoran",lambda:(String) ->Unit) = lambda.invoke(str)

一、高阶函的实现调用

fun main(){
    //二、高阶函数的实现
    // 高阶函数的 演变过程 1 2 3 4
    //写法1
   show("AA",lambda = {
      println("输入参数为$it")
   })
    //写法2
    show("AA",{
        println("输入参数为$it")
    })
   //写法3 将最后一个Lambda写到外边,一般使用这种写法
    show("AA"){
        println("输入参数为$it")
    }
   
    //写法4 由默认参数 可以这样写 且it输出的为默认参数
    show{
        println("输入参数为$it")
    }

    // TODO 4 多个Lambda 历史演化过程: 1 2 3 4  并且 顺序可以随意互换
    show2(lamba1 = { println("lamba1 输入参数为$it")},lamba2 ={ println("lamba2 输入参数为$it")})

    show2({ println("lamba1 输入参数为$it")},{ println("lamba2 输入参数为$it")})

    show2({println("lamba1 输入参数为$it")}){ println("lamba2 输入参数为$it")}

    // 明确的指定,能不能顺序调换
    show2(lamba2 = {
        println("lamba2输出:$it")
    }, lamba1 = {
        println("lamba1输出:$it")
    })


}