Lambda表达式 和 高阶函数

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.高阶函数

接收一个参数是函数类型的参数或者返回的参数里面有函数类型的参数,那么这个函数就是高阶函数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容