您的位置:首页 > 其它

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方法的其他类型对象上。

原文

原文地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: