我正在尝试使用Scala解释器中的fold函数对列表进行求和,但它一直给我一个奇怪的错误。当我输入以下内容时:
val list = List(1,2,3)
(list :\ 0)(+)
我希望得到
6
,然而解释器显示error: illegal start of simple expression
(list :\ 0)(+)
^
如果我定义了自己的函数
def plus(a: Int, b: Int) = a+b
并调用
(list :\ 0)(plus)
实际上,我得到了6
。
我确定我错过了一些非常简单的东西,但我无法弄清楚,所以任何帮助都将不胜感激。
plus
方法是一个Function2,它的apply方法被foldLeft调用。与此同时,+
运算符在Int类中被定义为一个方法,因此我们需要告诉Scala编译器我们想要调用哪个对象的+
方法。 - Aaron