“Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式树类型。
所有 Lambda 表达式都使用 Lambda 运算符=>,该运算符读为“goes to”。该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。Lambda 表达式x=> x * x读作“x goes to x times x”。可以将此表达式分配给委托类型
例如:
Integer[] a = {1, 8, 3, 9, 2, 0, 5};
Arrays.sort(a, (o1, o2) => o1 - o2);
Lambda 表达式语法
Lambda 的基本结构为(arguments)-> body,有如下几种情况:
- 参数类型可推导时,不需要指定类型,如 (a) -> System.out.println(a)
- 当只有一个参数且类型可推导时,不强制写 (), 如 a -> System.out.println(a)
- 参数指定类型时,必须有括号,如 (int a) -> System.out.println(a)
- 参数可以为空,如 () -> System.out.println(“hello”)
- body 需要用 {} 包含语句,当只有一条语句时 {} 可省略