任何人都可以解释为什么我看到下面这个编译错误,当我忽略点符号的应用foldLeft
功能?(2.9.2版本)为什么在foldLeft中留下点会导致编译错误?
scala> val l = List(1, 2, 3)
res19: List[Int] = List(1 ,2 ,3)
scala> l foldLeft(1)(_ * _)
<console>:9: error: Int(1) does not take parameters
l foldLeft(1)(_ * _)
^
但
scala> l.foldLeft(1)(_ * _)
res27: Int = 6
这没有按” t适用于其他高阶函数,如map
这似乎不关心我是否提供点或不。
我不认为它的关联的事情,因为我不能只调用foldLeft(1)
谢谢建设性的说明,我的问题的完整答案在您对Regis的文章所做的第一条评论中,关于解析器如何攻击表达式。 – nsfyn55