`
Ivan_Pig
  • 浏览: 381977 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

[FAQ]什么是lambda表达式

阅读更多

    在一般数学计算中,lambda表达式就是函数:根据部分或所有输入的组合,返回相应的值。lambda表达式作为函数式思想被引入到了Java中。熟悉Java语法的朋友可以把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                                       // 接受数字,并返回该值的2
6. c -> { int s = c.size(); c.clear(); return s; }  //
接受一个集合。清空该集合,

                                                                                                               返回该集合未清空前的长度

 

语法注意点:

  1. 可以明确的指出参数类型(比如,1,4)也可以不明确指出(2,5,6).在单个lambda表达式中,
    无论你明不明确指出参数类型都是没有关系的。
  2. lambda表达式的表达式体可以是个语句块(被大括号包围,例如:6)或者是个表达式(例如:1-5)
    语句块式的表达式体能返回值或者不返回。使用或省略
    return关键字的规则和普通的方法体相同。
  1. 如果表达式体是个表达式,那么它也可以返回值(例如:1,2,3,5),也可以不返回(例如:4)
  2. 如果表达式只有一个参数那么括号可以省略(例如:5,6)
  1. 例子6后的注释说此lambda表达式需要一个集合作为参数。而实际上,根据上下文环境的不同,
    此表达式不限于集合参数,只要参数包含
    size方法和clear方法,并且接受合适的参数且返回合适的类型即可。

 

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics