Kotlin Lambada表达式函数调用实例
-
在lambada表达式,如果在函数中参数中传递一个函数,可以用fun(){}方式来调用,这种方式应该是kotlin中的lambda语法糖,如果按照java中的理解,我们应该第二个参数就是匿名函数,也就是 fun(param1,(params)->{})这种方式
-
什么方式下不能用fun(prams){}这种方式,参数不是在最后一个,比如说fun((params)->{},params2)
还是上个例子吧
fun main(args: Array<String>) {
//两个参数以上就只能这种写法了,不能省略用it了
call(11) { a, b ->
println(a)
println(b)
}
//单个参数可以直接用it代替,省略
call1(11) {
println(it)
}
//比如这种就只能这样子写,因为参数不在第二个,不能call1(){}这种
call3({
println(it)
}, 3)
}
fun call(a: Int, b: (Int, Int) -> Unit) {
b(a * 11, a)
}
fun call1(a: Int, b: (Int) -> Unit) {
b(a)
}
fun call3(a: (Int) -> Unit, b: Int) {
a(b)
}