【发布时间】:2018-06-27 19:20:27
【问题描述】:
在下面的代码 sn-p 中,我使用 reduceLeft 和 foreach 循环来查找一个数字与所有列表成员的差异之和。我期待这两个的结果是相同的(1050),但 reduceLeft 在最终答案中增加了额外的 50(val x)。这背后的原因是什么?
val list = List(200,400,600)
val x = 50
println(list.reduceLeft((total, cur) => total + Math.abs(x - cur)))
var total = 0l
list.foreach(p => {
total = total + Math.abs(x - p)
})
println(total)
【问题讨论】: