在 scala 中,我想将 Seq 的内容累积在 Buffer 中,并避免在每次添加时构造一个新的 Buffer。我解决了这样的问题:
import scala.collection.mutable.Buffer
var sum = Buffer[Double](1.0,2.0)
sum.append(3.0)
val add = Seq[Double](4.0,5.0,6.0)
for( i <- 0 until sum.size ) sum.update(i,sum(i)+add(i))
有没有办法避免for循环。我对 zip 所做的任何尝试都会以重新分配给 val 错误结束。
最佳答案
如果您想避免创建新的 Buffer
,
zip
没有多大帮助,但您可以使用 zipWithIndex
来计算索引您应该向其中添加当前元素和 view
以避免在内存中创建序列:
add.view.zipWithIndex.foreach {
case (value, index) => sum(index) += value
}
关于scala - 如何添加到 scala.collection.mutable.Buffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33721814/