DoubleStream ds = DoubleStream.of(1.0, 2.0, 3.0);
DoubleFunction<DoubleUnaryOperator> fun = a -> d -> d + a;
System.out.print(ds.map(fun.apply(1.0)).sum());
在我学习 lambda 的过程中,我理解了诸如
d -> d+a
甚至 (d, a) -> d+a
但是虽然知道函数的作用,但是还是搞不懂上面lambda的语法。
有人可以解释一下或提供一些教程的链接吗?
谢谢。
最佳答案
a -> d -> d + a;
与
相同a -> (d -> d + a);
这是一个函数,对于 double a
返回一个函数,对于 double d
返回 a
和 的总和d
.
有关函数的部分应用或将多参数函数转换为多个单参数函数的更多详细信息,请参阅currying .
关于java - DoubleFunction 的 Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58520214/