1.Lambda表达式
本质上就是一个匿名函数,写法{x:String,y:String -> //执行语句}
表达式不允许出现return
// 匿名函数
val noName = fun(x:String,y:String){
println(x+y)
}
// 一般函数
fun add(x:Int, y:Int):Int{
return x+y
}
// 改成Lambda,这个变量的类型就是Lambda表达式的类型
var add = {x:Int, y:Int -> x+y}
2.Lambda表达式就是一个函数类型的变量
lambda表达式只接受一个参数,那么这个参数可以省略,用itdai
要是一个函数最后一个参数接受的是一个lambda表达式,那么这个lambda表达式可以移到括号外面传参。
如果函数只接受一个lambda表达式,那么小括号还可以省略。
表达式不是函数,return不是终止的表达式
fun comboTwoValue(x:Int, y:Int, method:(a:Int, b:Int)->Int){
return method(x,y)
}
val num = comboTwoValue(1,2){x,y -> x+y}
3.高阶函数
接收一个参数是函数类型的参数或者返回的参数里面有函数类型的参数,那么这个函数就是高阶函数