#include <iostream>
using namespace std;
int main() {
[]() { cout << "hello, world" << endl; }();
auto add = [](int a, int b)->int{
return a + b;
};
int ret = add(1,2);
std::cout << "ret:" << ret << std::endl;
//输出 ret:3
int c = 0;
[]() {
// int a = c;//不能访问变量c
}();
[=](int a) {
// c = 1;//不能改变c的值;改成[&]就可以了
}(1);
int x = 100,y=200,z=300;
auto ff = [=,&y,&z](int n) {
cout << x << endl;//输出 100
y++; z++;
return n*n;
};
cout << ff(15) << "," << y << "," << z << endl;
//输出 225,201,301
return 0;
}
Lambda 表达式的定义形式如下:
[外部变量访问方式说明符] (参数表) -> 返回值类型
{
语句块
}
“外部变量访问方式说明符”可以是=或&,表