我有一个名为的元组列表,列表中的item
每个索引都包含 2 x Double
s 例如
item = ((1.0, 2.0), (3.0, 4.0), (10.0, 100.0))
我想对列表中的每个索引执行计算item
,我正在尝试使用foldLeft
. 这是我的代码:
item.foldLeft(0.0)(_ + myMethod(_._2, _._1, item.size)))
_._2
访问item
索引 1 处_._1
的当前元组并访问item
索引 0 处的当前元组。例如,对于第一个折叠,它实际上应该是:
item.foldLeft(0.0)(_ + myMethod(2.0, 1.0, item.size)))
第二折:
item.foldLeft(0.0)(_ + myMethod(4.0, 3.0, item.size)))
第三折:
item.foldLeft(0.0)(_ + myMethod(100.0, 10.0, item.size)))
我的方法在哪里:
def myMethod(i: Double, j:Double, size: Integer) : Double = {
(j - i) / size
}
它给了我一个错误,说参数太多,foldLeft
因为它需要 2 个参数。
myMethod
返回 a Double
,并且_
是 a Double
。那么,编译器看到的这个额外参数在哪里呢?
如果我这样做:
item.foldLeft(0.0)(_ + _._1))
它总结了Double
的每个索引中的所有第一个 s item
- 将 _._1 替换为 _._2 总结了Double
的每个索引中的所有第二个 s item
。
任何帮助是极大的赞赏!