Lambda 其实就是一种函数的简单写法,不管写的多复杂,首先他是一个函数,传参给这个函数,这个函数就会进行相应的操作或者给出相应的返回值
理解哪些是Lambda的参数,哪些是返回值,逐层查看
首先展示一个函数:
val method15: (String) -> (Int) -> String = { str: String ->
{ n1:Int->
"$str,$n1,test"
}
}
这个函数的第一个参数是一个函数,它的参数是 (String),调用后,返回一个函数,这个新的函数是
(Int) -> String 类型的函数,可以继续调用
所以,该方法的调用方法如下:
println(method15("derry")(14))
println(method15("String")(166))
输出结果:
在这里写一个结论:
一个kotlin的参数是链式的时候
可以链式调用
如:
val method16: (String) ->(String) ->(String) ->(String) -> (Int) -> String = { str1: String ->
{ str2: String ->
{ str3: String ->
{ str4: String ->
{ n1:Int->
"$str1,$str2,$str3,$str4,$n1,test"
}
}
}
}
}
println(method16("derry1")("derry2")("derry3")("derry4")(14))
println(method16("test1")("test2")("test3")("test4")(14))
调用结果:
一一对应