如何发送累积函数以在Scala中折叠,下面的示例将说明(Int,Int,Int) does not take parameters
。
我的问题是:
在下面的代码中,如何按照惯例方式做我想要的事情?
def a(xs: List[(Int,Int)]): Int = {
def logic(acc: (Int,Int, Int), post: (Int,Int)): (Int,Int,Int) = {
// do some logic
(1, 2, 3)
}
val to = xs foldLeft((0,0,0))(logic _)
to._3
}
答案 0 :(得分:2)
问题在于:
xs foldLeft((0,0,0))(logic _)
除非是操作员,否则永远不要使用无点符号。这样就行了。
xs.foldLeft((0,0,0))(logic _)
如果没有上下文,我相信这是不恰当的。
答案 1 :(得分:1)
我没有达到您的代码的目标,但您描述的问题可以通过这种方式解决:
val to = xs.foldLeft((0,0,0))(logic)
答案 2 :(得分:1)
试试这个
xs.foldLeft((0,0,0), logic)
答案 3 :(得分:1)
foldLeft
是一个curried函数,因此它需要.
- 转到xs.foldLeft
并且它会起作用。