什么是Lambda表达式?

什么是Lambda表达式?

本文仅供学习和交流使用,如果您发现我已经侵犯到原作者的版权,请邮件我ttchgm@gmail.com。以便我及时删除和处理。如果翻译有错误或者交流可以随时mail我。或者在sina微博 @天天吃好,私信与我。 本文拒绝任何形式转载。

在一般数学计算中,一个lambda表达式就是一个函数,它的定义是:为部分或者所有输入值指定一个输出值。Lambda表达式在java中是以函数语言的概念引入。在java中术语Lambdas可以理解为一种省略掉修改器,返回类型和参数类型的更紧凑,更好的匿名方法。

语法, lambda的基本语法:

(parameters) -> expression
或者
(parameters) -> { statements; }

例子

  1. (int x, int y) -> x + y 取两个整型数并返回他们的和

  2. (x, y) -> x - y 取两个数字并返回他们的差

3.() -> 42 不取任何值直接返回42

4.(String s) -> System.out.println(s) 取一个字符串,在控制台中打印它的值,并什么也不返回。

5.x -> 2 * x 取一个数字并返回它的倍数。

6.c -> { int s = c.size(); c.clear(); return s; } 取一个集合,清空它,并返回清空前的大小。

语法注记

  • 参数类型可以明确的声明(ex. 1,4) 或者隐含的推断(ex. 2,5,6)。声明和推断的类型参数可以不混进一个单独的lambda表达式。
  • body可以是一个BlockBlock Body能返回一个值(value-compatible ,ex.6)或者什么都不返回(void-compatible)。这里的规则为使用或省略掉return关键字的块体等同于一个普通函数体。
  • 如果body(译者注:体为一个{ } )是一个表达式,他可以返回一个值(ex.1,2,3,5)或者什么都不返回(ex.4)
  • 一个推断类型可以省略掉圆括号。(ex . 5,6)
  • 例子6注释的意思是lambda能够操作到一个集合,同样的,他的出现也依赖于上下文的给定参数,如果给定参数拥有size和clear方法,他也能操作,并返回其类型的值。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值