跳到主要内容

匿名函数—— lambda 表达式

  • 当代码里面存在大量的小函数,而这些函数一般只被一两处调用,那么推荐使用 Lambda 表达式
  • 当你想用一个函数,但是又不想费神去命名一个函数时

[capture](params) -> return { /*func_code*/};

  • [capture] 中指定可见域范围内 lambda 表达式代码内可见的参数
  • const 类型的 lambda 表达式,该类型的表达式不能改捕获(“capture”)列表中的值
参数作用
[a, &b]前文定义的a以值方式被表达式捕获,b则以引用的方式
[this]以值的方式捕获 this 指针
[&]以引用的方式捕获所有的外部自动变量
[=]以值的方式捕获所有的外部自动变量
[ ]不捕获外部的任何变量
  • (params) lambda表达式内部变量定义

  • ->ret 返回类型 —— lambda 表达式中可以有 return 语句,如果不使用 return 语句,则可省略,类似 void

  • { /*func_code*/} —— lambda 表达式的主题结构,函数的定义

eg.