1. Lambda一般用于代替匿名类,让代码逻辑看起来更加清晰,方法开发以及代码的阅读
2. Lambda一般代替匿名类时,相当于匿名类本身,基本结果为 ()->{ },如果参数或者方法体语句只有一个可以省略括号。
3. Lambda使用条件:实例化一个类,其内部有匿名类,或者需要实现接口,并且需要重写的方法只有一个。 那么就以方法为根据和参考基准,方法的参数对应小括号,方法体对应大括号。
Lambda 表达式应用示例:
Lambda 表达式应用示例:
4. Lambda在Kotlin中的使用:在kotlin中使用时,Lambda表达式更像是一个函数。它可以简化一些函数的定义,基本结构为 {a:Int -> 2*a}, ->左侧为参数以及参数的类型,右侧为方法体,并且最后一行作为方法体的返回值。
5.Kotlin中,扩展函数一般语法是 fun String.add(a:String):String{},实际上是一个函数add, 会将一个String对象作为第一个参数。
6.Kotlin中,Lambda表达式
将函数作为一个对象,语法为
val 函数名:(参数类型,参数类型) ->返回值类型 = 大括号{x,y-> 方法体,最后一行作为返回值}
进一步简化写法:
去除函数的参数和返回类型(由系统推导)
大括号内 ->左侧参数说明其数据类型
如何调用呢?
sum(2,3)
7.高阶函数,高阶函数指的是:一个函数的形式参数类型或者函数的返回值类型为函数。 因为参数和返回类型都是函数,传入不同的函数就可以实现不同的功能
1.函数作为形式参数写法: c: (Int,Int) -> Int
2.函数体定义的写法:可以普通形式,也可以上面的lambda形式
3.高阶函数调用时,函数作为实参传入写法:普通的函数调用的写法 c
作为返回值类型
既然作为返回值,那么返回值就是一个函数,获取到返回值后,就可以将返回值视为一个函数进行传值调用。