一、高阶函的定义
// 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")
})
}