块 lambda 表达式(表达式.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 表达式的详细内容,更多请关注知识资源分享宝库其它相关文章!