gpt4 book ai didi

java - 如何引用 Lambda?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:33:12 24 4
gpt4 key购买 nike

我如何从其中引用 Lambda,例如,如果我需要递归地使用 myLambda

myLambda -> {expression}
// ^^^^^^^^^^ how can I refer to myLambda here?

最佳答案

如果您的意思是您想要引用您在该 lambda 表达式定义的 lambda 表达式,我认为不存在任何此类机制。我知道在少数情况下它会很有用 - 基本上是递归定义 - 但我认为它不受支持。

您无法在 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);

和:

// 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-combinator在这里会有所帮助,但我现在没有精力在 Java 中想出一个例子:(

关于java - 如何引用 Lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27767800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com