块 lambda 表达式(表达式.lambda...)

wufei1232025-01-08java9

块 lambda 表达式

Lambda 表达式可以拥有两种主体类型:表达式主体和块主体。

表达式主体: 这是最简洁的 lambda 表达式形式,仅包含单个表达式。该表达式结果会自动作为 lambda 表达式的返回值。

块主体: 与表达式主体不同,块主体允许包含多条语句,例如变量声明、循环语句(如for循环)、条件语句(如if语句)以及switch语句等,功能更为强大。 需要注意的是,在块主体中,需要使用return语句显式返回结果。

以下示例演示了如何使用块主体 lambda 表达式,通过NumericFunc函数接口查找整数的最小正因数:

interface NumericFunc {
    int func(int n);
}

class BlockLambdaDemo {
    public static void main(String[] args) {
        // 查找最小正因数的块 lambda 表达式
        NumericFunc smallestF = (n) -> {
            int result = 1;
            n = Math.abs(n); // 获取n的绝对值
            for (int i = 2; i <= n; i++) {
                if ((n % i) == 0) {
                    result = i;
                    break;
                }
            }
            return result;
        };

        System.out.println("12的最小因数是 " + smallestF.func(12));
        System.out.println("11的最小因数是 " + smallestF.func(11));
    }
}

程序输出:

12的最小因数是 2
11的最小因数是 1

这个例子清晰地展示了块主体 lambda 表达式的使用方法,以及它如何处理比简单表达式更复杂的逻辑。 通过return语句,我们明确指定了 lambda 表达式的返回值。

以上就是块 lambda 表达式的详细内容,更多请关注知识资源分享宝库其它相关文章!

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。