视频教程:https://www.bilibili.com/video/av66419552/
格式:
[capture](parameters)mutable->returm-type{}; 函数的声明
[capture](parameters)mutable->returm-type{}(); 函数的调用
[] 表示表达式的开始,必须有:
如果[]里为空,表示任何变量都不会传递给lambda表达式
[=] 表示默认按值传递,传递给{}中用到的变量或对象
按值传递:语句体内修改变量值,不会影响外面的变量值
注意:捕获的变量将不会被作为垃圾回收,直至引用变量的委托超出范围为止
[&] 表示默认按引用传递
引用传递,由于两个变量指向同一个数据,所以语句体内修改变量值,会影响外面的变量值
[var]:var是变量名,只传递变量var,其它不能传;前面可以添加&前缀,表示var变量按引用传递
() 参数列表--可选
没有参数可以省略
可以按值传递,如 (a,b);也可以按引用传递,如 (&a,&b)
mutable 选项(可选)--按值传递时使用
加上mutable后,在语句体类可以修改变量值;省略变量只能只读
returm-type---返回值类型
如果只有一处return时,可以省略,自动判断出类型
int ret=[]()->int{return 1000;}();
{} 语句实现体
天子骄龙