Lambda FAQ_1.什么是Lambda表达式?
2014-04-14 18:04
288 查看
什么是Lambda表达式
通常在数学和计算领域中,lambda表达式(lambda expression)是一个函数:这个函数根据部分或者全部的输入值来返回一个输出值。Java中的lambda表达式将函数理念引入到了语言层次。为更容易的理解,可以把lambda理解为一种更简洁语法的匿名函数,语法简洁的可以忽略访问限定符、返回值类型、甚至有时可以忽略参数类型。语法
基本语法有如下两种:(parameters) -> expression或者
(parameters) -> {statements;}
示例
(int x, int y) -> x+y(x,y) -> x-y
() -> 42
(String s) -> System.out.println(s)
x -> 2*x
c -> {int s = c.size(); c.clear(); return s;}
语法说明
参数类型可以是显示声明的(示例的1,4),也可以是隐式推断的(示例的2,5,6)。声明类型和推断类型可以在一个lambda表达式中混用。表达式体可以是一个语句块(示例的6),也可以是一个表达式(示例的1-5)。语句块可以返回一个值或者不返回值。是否应该使用return返回值的依据和普通的方法一样。
如果表达式体是一个表达式,也尅返回值或者不返回值。
对于只有一个推断类型参数的表达式,圆括号可以省略。
示例6表明lambda可以作用在集合上,同样的,根据lambda表达式的上下文,lambda表达式也能够作用在有size和clear方法的其他类型对象上。
原文
原文地址相关文章推荐
- Lambda FAQ_4.Lambda表达式的类型是什么?
- Lambda FAQ_7.Lambda表达式的域规则是什么?
- Lambda FAQ_9.Lambda表达式中能使用外部环境的变量吗?
- lambda表达式的类型是什么?
- Lambda FAQ_12.什么是构造函数引用?
- (转)Lambda表达式 => 是什么意思?
- 【闲杂知识】什么是Lambda表达式?
- 什么是lambda表达式?
- 什么是Lambda表达式?
- lambda表达式的实质——什么是lambda表达式,为什么要使用lambda表达式
- 什么是C# Lambda表达式?形如:p=>p.abc
- [FAQ]为什么引入lambda表达式
- Lambda FAQ_3.什么是函数接口?
- 委托、Lambda表达式、事件系列01,委托是什么,委托的基本用法,委托的Method和Target属性
- 什么是C# Lambda表达式?形如:p=>p.abc
- Lambda FAQ_13.默认方法是什么?
- C++11 FAQ中文版:Lambda表达式
- Lambda FAQ_5.Lambda表达式是对象吗
- C++11 FAQ中文版:Lambda表达式
- Lambda FAQ_8.Lambda表达式能用来定义递归函数吗?