lamda表达式的总结

以前只会用,现在总结一下。

lamda表达式可以理解为匿名函数的实现方式。

Lambda表达式完整的声明格式如下:

[capture list] (params list) mutable exception-> return type { function body }

项具体含义如下

  1. capture list:捕获外部变量列表
  2. params list:形参列表
  3. mutable指示符:用来说用是否可以修改捕获的变量(有就表示可以修改;没有这个指示符,就表示不能修改捕获的变量)
  4. exception:异常设定
  5. return type:返回类型
  6. function body:函数体

常用的结构如下:

序号 格式
1 [capture list] (params list) -> return type {function body}
2 [capture list] (params list) {function body}
3 [capture list] {function body}

主要注意下对于参数的捕获方式:

1.[capture list]  为空,即[ ](){  function body}  ,表示函数不捕获外部任何参数,也就是函数体内部不需要用到函数体以外的变量,即使是同名的,也是新创建的,否则会编译报错,capture参数失败。

2..[capture list]  不为空,那么就会捕获外部的变量,至于怎么捕获看下面贴的文章,解释的很详细。

其余的详细信息可以参考这篇文章,讲的很详细:

https://www.cnblogs.com/DswCnblog/p/5629165.html 

关于lamda的应用,可以看一下我的另一篇博客,关于如何对pair数据对按照first or second元素进行排序

https://blog.csdn.net/qq_31638535/article/details/82859165

猜你喜欢

转载自blog.csdn.net/qq_31638535/article/details/89516867
今日推荐