首页 > 解决方案 > 如何在Scala中单独总结对元素

问题描述

我有以下方法来总结对数组中的对元素。我是 scala 的新手,感觉会有比以下代码更好的方法。

  def accumulate(results: Array[(Int, Int)]): (Int, Int) = {
    var x: Int = 0
    var y: Int = 0
    for (elem <- results) {
      x = x + elem._1
      y = y + elem._2
    }
    (x, y)
  }

标签: scala

解决方案


是的,您可以使用foldLeft.
(顺便说一句,我也会使用List,而不是Array

results.foldLeft((0, 0)) {
  case ((accX, accY), (x, y)) =>
    (accX + x, accY + y)
}

推荐阅读