lambda表达式复习

Posted pixel-teee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lambda表达式复习相关的知识,希望对你有一定的参考价值。

lambda
可调用对象:对于一个对象或一个表达式,如果可以对其使用调用运算符,则称它为可调用的。

四种可调用对象:函数和函数指针,重载了函数调用运算符的类,以及lambda表达式

lambda可能定义在函数内部,一个lambda表达式具有如下形式:
capture list -> return type { function body }
capture lis(捕获列表)是一个lambda所在函数中定义的局部变量的列表,lambda必须使用尾置返回来指定返回类型

可以忽略参数列表和返回类型,但必须永远包含捕获列表和函数体
如果忽略返回类型,lambda根据函数体中的代码推断出返回类型

向lambda传递参数
与普通函数不同,lambda不能有默认参数(即缺省值)

使用捕获列表
一个lambda可以出现在一个函数中,使用其局部变量,在其中提供一个以逗号分隔的名字列表

被捕获的变量的值是在lambda创建时拷贝,而不是调用时拷贝

默认情况下,对于一个值被拷贝的变量,lambda不会改变其值。如果希望改变,就必须在参数列表首加上关键字mutable。

//lambda可以看成一个未命名的类,其中的捕获列表可以看成是数据成员

以上是关于lambda表达式复习的主要内容,如果未能解决你的问题,请参考以下文章

C#复习总结细说表达式树

Java 基础| 使用 lambad 表达式的正确姿势

lambda表达式之进化

C#复习总结细说匿名方法

day 18 lambda表达式

java基础复习