Pra*_*ant 0 java lambda functional-programming java-8
为什么以下不是有效的Lambda表达式?
(Integer i) -> return "Alan" + i;
Run Code Online (Sandbox Code Playgroud)
我希望它是有效的,但实际上是无效的,请解释
如果语法正确,它将是一个有效的lambda表达式。
Function<Integer, String> f1 = (Integer i) -> { return "Alan" + i; };
Function<Integer, String> f2 = (Integer i) -> "Alan" + i;
Function<Integer, String> f3 = (i) -> "Alan" + i;
Function<Integer, String> f4 = i -> "Alan" + i;
Run Code Online (Sandbox Code Playgroud)
Lambda主体可以是表达式(1)或块(2)(JLS-15.27.2)。
(1)
returnexpression
return绝不是表达式的一部分,它是控制执行流程的语句(JLS-14.17)。
(2)
要使其成为障碍物,需要大括号。
{ return expression; }
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |