Java 8 函数式编程(三)—— Lambda 表达式

在许多情况下, Lambda 表达式的存在只是为了传递一个或多个形参。
在函数式编程中,常常传递 Lambda 表达式作为匿名函数,使用 Lambda 作为更高阶函数的实参。

普通函数(方法)通常有四个元素:

  • 一个名称
  • 返回类型
  • 参数列表
  • 主体

Lambda 表达式的构成: (parameters) -> body 这里的 -> 将参数列表和函数主体分离。函数的主体可能是一个表达式或一个语句。

i -> i*2

在上面这个 Lambda 表达式中只有一行。信噪比很高,没有分号,也不需要 return 关键字。这是一个理想的 Lambda 表达式。

当然,有很多时候,我们的函数主体可能需要包含多行表达式或语句。在这种情况下,分号必不可少,也会需要 return 关键字,因为主体包含多行,括号 {} 也是必须的。同时如果参数列表为多个或没有参数时括号 () 也是必须的。

(i, j) -> {
    int square = i*i;
    int number = square/2 + j;
    return square + number;
}

需要注意的是:这里的参数列表中的 i, j 并没有给定参数类型,这是因为在 Java 8 中支持了类型推断。当然我们也可以给定参数类表中的数据类型:(int i, int j) -> {...}

猜你喜欢

转载自blog.csdn.net/xiaoping0915/article/details/81164911