带有curried函数的Scala无点调用语法

带有curried函数的Scala无点调用语法,scala,syntax,Scala,Syntax,注意:更一般问题的详细答案在堆栈溢出问题中 以下工作: scala> List(1,2,3) filter (_ > 1) reduceLeft(_ + _) res65: Int = 5 以及以下各项: scala> List(1,2,3).filter(_ > 1).foldLeft(0)(_ + _) res67: Int = 5 但不是这个税: scala> List(1,2,3) filter (_ > 1) foldLeft(0)(_ + _)

注意:更一般问题的详细答案在堆栈溢出问题中

以下工作:

scala> List(1,2,3) filter (_ > 1) reduceLeft(_ + _)
res65: Int = 5
以及以下各项:

scala> List(1,2,3).filter(_ > 1).foldLeft(0)(_ + _)
res67: Int = 5
但不是这个税:

scala> List(1,2,3) filter (_ > 1) foldLeft(0)(_ + _)
<console>:10: error: 0 of type Int(0) does not take parameters
       List(1,2,3) filter (_ > 1) foldLeft(0)(_ + _)
                                        ^
scala>List(1,2,3)过滤器(>1)foldLeft(0)(u+)
:10:错误:Int(0)类型的0不接受参数
列表(1,2,3)过滤器(>1)折叠英尺(0)(+)
^
什么是建议的修复方法?

此方法有效:

(List(1,2,3) filter (_ > 1) foldLeft 0) (_ + _)
这项工作:

(List(1,2,3) filter (_ > 1) foldLeft 0) (_ + _)

这个主题在堆栈溢出问题中有很好的描述

函数似乎比只有一个参数的方法要难一些。要省略点,curried函数需要在中缀调用之外使用括号

如图所示,这是有效的(对象(列表)、方法(foldLeft)及其第一个参数(0)在括号中):


这个主题在堆栈溢出问题中有很好的描述

函数似乎比只有一个参数的方法要难一些。要省略点,curried函数需要在中缀调用之外使用括号

如图所示,这是有效的(对象(列表)、方法(foldLeft)及其第一个参数(0)在括号中):


Marimuthu和你应该加入你的答案Marimuthu和你应该加入你的答案。