c++ 中的用法
优点
可以放在函数内部,因此离使用地点可以很近。
基本定义
auto f = [捕获外部变量] (形参列表) 指示符 异常设定 -> 返回类型{函数体};
其中,指示符
,异常设定
通常不写,返回类型可以智能判断(返回类型相当于使用decltype对返回值推断得出),除非情况特殊,也可以省略->返回类型
。
捕获外部变量
捕获外部变量 | 说明 |
---|---|
[] | 不捕获外部变量 |
[&] | 按引用捕获所有外部变量 |
[=] | 按值传递捕获所有外部变量 |
[a,…] | 具体将 a以按值传递捕获 |
[&a,…] | 具体将a以按引用传递捕获 |
形参列表
- 必须要有参数名,因为后面定义函数体中需要用到
使用方法
// 例1 直接使用
count1 = std::count_if(n1.begin(),n1.end(),[](int x){return x%3 == 0;});
// 例2 命名再使用
auto f = [](int x) {return x % 3 == 0;};
count1 = std::count_if(n1.begin(),n1.end(),f);
c# 中的用法
本质就是一个匿名函数
(x,y) => x*y // 双参数, 隐式类型 => 表达式
x => x*5 // 单参数,隐式类型 => 表达式
(int x) => x*5 // 单参数,显示类型=> 表达式
(int x) => { return x*5;} // 单参数,显式类型 => 语句块
() => Console.WritrLine() // 无参数