Lambda 表达式详细介绍
Lambda 表达式是匿名函数的简写形式,允许在代码中直接定义函数而无需命名,常用于简化代码、实现回调或作为参数传递。它在现代编程语言(如 C++、Python、Java、C#)中广泛支持,尤其在函数式编程和异步操作中极为高效。
Lambda 的核心组成(以 C++ 为例)
Lambda 的基本语法如下:
[捕获列表] (参数列表) -> 返回类型 {
函数体 }
每个部分的详细说明:
1. 捕获列表(Capture List)
定义 Lambda 如何访问外部作用域的变量。
[]:不捕获任何外部变量。[=]:以值捕获所有外部变量(默认只读,需mutable修饰才能修改副本)。[&]:以引用捕获所有外部变量(直接操作原变量)。[var]:显式捕获特定变量(值捕获)。[&var]:显式捕获特定变量的引用。- 混合捕获:
[=, &x](值捕获全部,但x为引用)。
示例:
int x = 10, y = 20;
auto lambda = [x, &y]() {
y = 30; // 合法,y 是引用
// x = 5; // 错误!值捕获的 x 是只读(除非使用 mutable)
};
2. 参数列表(Parameters)
与普通函数的参数列表一致,支持默认参数和类型推导(C++14+)。
auto add = [](int a, int b) {
return a + b; };
3. 返回类型(Return Type)
- 显式声明:
-> T指定返回类型(例如-> bool)。 - 隐式推导:若函数体仅有一个
return语句,编译器可自动推导返回类型。
auto isEven = [</

最低0.47元/天 解锁文章
459

被折叠的 条评论
为什么被折叠?



