【发布时间】:2026-01-24 23:15:01
【问题描述】:
我不确定 Scala 中的 fold 和 foldLeft 有什么区别。
问题Difference between fold and foldLeft or foldRight? 有一个关于订购的答案。这是可以理解的。但我仍然不明白为什么这样做(来自 REPL):
scala> Array("1","2","3").foldLeft(0)(_ + _.toInt)
res6: Int = 6
但事实并非如此:
scala> Array("1","2","3").fold(0)(_ + _.toInt)
<console>:8: error: value toInt is not a member of Any
Array("1","2","3").fold(0)(_ + _.toInt)
^
这个错误信息是什么意思?
文档中的这一行也让我感到困惑。
z - 折叠操作的中性元素;可以添加到 结果任意次数,并且不得更改结果 (例如,Nil 表示列表连接,0 表示加法,或 1 表示 乘法。)
为什么要添加任意次数?我认为折叠的工作方式不同。
【问题讨论】:
标签: scala