Lambda 表达式

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)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值