我怎样才能推荐Lambda从它的内部,例如,如果我需要使用myLambda
递归地?
myLambda -> {expression}
// ^^^^^^^^^^ how can I refer to myLambda here?
如果您的意思是要引用您正在定义的 lambda 表达式within那个 lambda 表达式,我不相信有任何这样的机制。我知道有一个few它会很有用的情况 - 基本上是递归定义 - 但我不相信它受到支持。
事实上,您无法在 Java 中捕获非最终变量,这使得这变得更加困难。例如:
// This doesn't compile because fib might not be initialized
Function<Integer, Integer> fib = n ->
n == 0 ? 0
: n == 1 ? 1
: fib.apply(n - 1) + fib.apply(n - 2);
And:
// This doesn't compile because fib is non-final
Function<Integer, Integer> fib = null;
fib = n ->
n == 0 ? 0
: n == 1 ? 1
: fib.apply(n - 1) + fib.apply(n - 2);
A Y组合器在这里会有帮助,但我现在没有精力用 Java 给出一个例子:(
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)