Lambda 表达式的语法结构

Java 中的 Lambda 表达式的基本结构如下:

(参数列表) -> { 方法体 }

✅ 语法形式举例(从简单到复杂)

形式 示例 说明
无参数 () -> System.out.println("Hi") 没有参数,执行一个语句
一个参数 x -> x * x 一个参数可以省略括号
多个参数 (a, b) -> a + b 多个参数要加括号
有方法体 (a, b) -> { int c = a + b; return c; } 多条语句时需要大括号和 return

分解示例

示例 1:list.forEach(s -> System.out.println(s));

解析:

  • 参数:s

  • 方法体:System.out.println(s)

  • 等价于实现 Consumer 接口中的 accept(T t) 方法。

相当于写了:

list.forEach(new Consumer() {
    public void accept(String s) {
        System.out.println(s);
    }
});

 

示例 2:

(x, y) -> x + y

解析:

  • 参数列表是两个:x, y

  • 方法体是一个表达式:x + y

  • 用于实现 BiFunction 接口中的 apply(x, y) 方法。

示例 3:

() -> 42

解析:

  • 无参数

  • 返回值为 42

  • 实现的是 Supplier 接口中的 get() 方法

Lambda 与函数式接口的关系

Lambda 表达式必须用于函数式接口的上下文中(即接口中只允许一个抽象方法)。

@FunctionalInterface
interface MyFunction {
    int operate(int a, int b);
}

然后我们就可以这样写:       

MyFunction add = (a, b) -> a + b;
System.out.println(add.operate(3, 5));  // 输出 

你可能感兴趣的:(python,开发语言)