函数 Lamda函数
函数 Lamda函数
[TOC]
匿名函数(lamda函数)
一个lamda函数的格式为:
1
[capture](parameters)->return_type{/*...*/};
[capture]: 捕获列表(Capture List),决定了函数在定义时能够访问和使用哪些外部变量。1[]:空捕获列表,表示 lambda 函数不捕获任何外部变量,只能使用函数内部的局部变量。[x]:值捕获,其中x是一个外部变量的名称。lambda 函数将会复制x的值,并在函数体中使用该值,不会对外部变量进行修改。[&x]:引用捕获,其中x是一个外部变量的名称。lambda 函数将会引用(绑定)x,并在函数体中使用该引用。任何对x的修改都会影响外部变量。[=]:默认值捕获,表示以值的方式捕获所有外部变量。函数体中使用的外部变量都是复制的副本,不会对外部变量进行修改。[&]:默认引用捕获,表示以引用的方式捕获所有外部变量。函数体中使用的外部变量都是通过引用访问的,任何对外部变量的修改都会影响外部变量。
(parameters):括号内为形参,和普通函数的形参一样。->return_type:lamda 函数的返回类型,如->int,->string等。一般情况下,编译器可以自行推出返回类型,所以这部分可以省略不写。{/*...*/}:函数主体,和普通函数一样。
以下是一个lamda函数的例子:
1
2
3
4
5
6
7
// 定义了一个加法函数FuncAdd,这就是一个函数,当函数用就对了
auto FuncAdd = [](int a, int b)->int
{
return a + b;
};
// 使用:
int nResult = FuncAdd(1, 2);
参考文章2
-
来源:ChatGPT4 ↩︎
本文由作者按照
CC BY 4.0
进行授权