Lambda表达式
来源:互联网 发布:五十而知天命 编辑:程序博客网 时间:2024/06/03 17:28
1. lambda 表达式:未命名的内联函数
优势:
①需要一个函数,但又不想费神去命名一个函数(匿名函数),尤其是该函数仅用到一次
②也使代码易于理解
③使得泛型算法的谓词参数不再受限
2. [ ] ( ) -> return type { }
Lambda表达式由四部分组成
①[ ]:值捕获列表,lambda表达式所在函数中定义的局部变量列表(局部static以及函数外定义的变量可以直接使用)
②( ):参数列表(可省略)
③->return type:返回类型(可省略)
- 仅包含return语句,则返回类型依据其返回值而定
- 否则&未指定返回类型,则推断为void,此时若返回非void则出错
④{ }:函数体
3.auto f = ->{ }; //lambda表达式对象
4.值捕获与引用捕获
值捕获:变量值在其创建时便拷贝——[=]隐式值捕获
引用捕获:变量传入其引用,确保lambda调用时该引用有效(流对象)——[&]隐式引用捕获
也可以混用,但第一个元素必须是=或&,以指定默认方式
5.注意点
lambda表达式参数列表不能有默认参数(又不会调用多次)。
[v] ( ) mutable{return ++v}; //可以使得捕获的值修改,但不会影响原来的变量
0 0
- Lambda Expressions(Lambda表达式)
- Lambda表达式
- Lambda表达式
- Lambda 表达式
- Lambda表达式
- lambda表达式
- lambda表达式
- Lambda表达式
- Lambda表达式
- Lambda表达式
- Lambda表达式
- Lambda 表达式
- Lambda表达式
- Lambda 表达式
- Lambda 表达式
- Lambda表达式
- Lambda表达式
- Lambda 表达式
- HDU2546 01背包
- JavaScript与PHP基础知识对比学习
- myeclipse安装破解教程
- Java读写.ini文件
- bzoj-1103 [POI2007]大都市meg
- Lambda表达式
- C++运算符优先级列表
- Android官方数据绑定框架DataBinding
- LeetCode2:Add Two Numbers
- Linux 中C语言 字符串与整数之间的转换
- Intel X86 CPU寄存器学习笔记
- iOS之旅--开始小demo+整合
- GNU C内嵌汇编学习笔记
- sql 查看创建几个数据库