lambda 表达式:
Lambda表达式完整的声明格式如下:
[capture list] (params list) mutable exception-> return type { function body }
各项具体含义如下:
- capture list:捕获外部变量列表
- params list:形参列表
- mutable 指示符:用来说用是否可以修改捕获的变量
- exception:异常设定
- return type:返回类型
- function body:函数体
我们这里先不讨论 exception
我们可以忽略参数列表和返回类型,但必须永远包含捕获列表和函数体:
1 #include <iostream> 2 using namespace std; 3 4 int main(void){ 5 auto f = [] { return 42; }; 6 auto g = [] {int a = 1; a++; return a;}; 7 cout << f() << endl;//42 8 cout << g() << endl;//2 9 return 0; 10 }