• Lambda函数


    什么是Lambda函数

    Lambda函数也叫Lambda表达式,是匿名函数,就是没有名字的函数,和传统的函数不一样。Lambda表达式是C++11中引入的新概念,用于定义并创建匿名的函数对象。首先看下Lambda表达式的基本结构。

    [捕捉列表] (参数) mutable ->返回值类型 {函数体}

    1、 [ ],标识一个,Lambda匿名函数的开始,这个必须有,不能省略,函数对象参数是传递给编译器自动生成的函数对象类的构造函数的。函数对象参数只能使用到Lambda定义为止Lambda所在的作用域范围内可见的局部变量,包括Lambda所在类的this。函数对象参数有以下形式

    a)       空,没有使用任何的函数对象参数

    b)       =,函数体内使用Lambda所在范围内的可见局部变量包括所在类的this的传值方式,相当于编译器给Lambda所在地的所有局部变量复制一份给Lambda函数

    c)        &,函数体内使用Lambda所在范围内的可见局部变量包括所在类的this的引用方式,相当于编译器给Lambda所在地的所有局部变量引用一份给Lambda函数

    d)       this,函数体内可以使用Lambda所在内的成员变量

    e)       a,不是字母,而是指具体一个变量a,那么Lambda内拷贝一个a使用

    f)         &a,Lambda内引用a

    g)       a,&b,拷贝a,引用b

    h)       =,&a,&b,除ab引用,其余拷贝

    i)         &,a,b。除ab拷贝,其余引用

    2、 函数参数,这个跟常规函数一样。

    3、 mutatble,修改关键字,再对应位置mutatble关键字,才能修改函数对象参数。否则报错。可以有,也可以没有,但有才能修改。lambda默认是const,也就是不能修改本地变量。

    4、 ->return-type返回值的方式,既然是函数就可能有返回值,那么->就是有返回值的函数标志。

    5、 函数体,跟常规函数一样。


    __EOF__

  • 本文作者: Athenavi
  • 本文链接: https://www.cnblogs.com/Athenavi/p/16814933.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    Flink K8S Operator 离线安装
    【C++ 学习 ㉓】- 详解红黑树
    java 泛型静态方法入参泛型类 和 RestTemplate 泛型返回
    九、数组的扩展(扩展运算符)
    【matplotlib 实战】--直方图
    speedoffice使用方法-word插入的图片怎么剪裁
    java学习之包
    【ESD专题】金属外壳连接器的信号PIN脚需要进行ESD测试吗?
    WEB自动化_键盘事件(输入内容、全选、退格、回车、删除等)
    在 Go 中管理多个数据库连接
  • 原文地址:https://www.cnblogs.com/Athenavi/p/16814933.html