Scala:是运算符foldl中缀吗?

Ant*_*nin 2 scala fold

foldl它来查看代码很难理解它的语法,例如:

  def lstToMap(lst:List[(String,Int)], map: Map[String, Int] ):Map[String, Int] = {
    (map /: lst) (addToMap)
  }
Run Code Online (Sandbox Code Playgroud)

是中/:缀运营商?什么(map /: lst)意思,部分申请?为什么我不能这样打电话:

`/:  map lst addToMap`
Run Code Online (Sandbox Code Playgroud)

Kri*_*ala 5

:字符结尾的方法名称可以在它们绑定的实例的左侧使用(即,它们与右侧相关联).在这种情况下,/:是一种方法List.根据Scaladoc:

注意:/:是foldLeft的替代语法; z /:xs与xs foldLeft z相同.

你写的东西的另一种选择是:

lst./:(map)(addToMap)
Run Code Online (Sandbox Code Playgroud)

编辑:和另一个使用foldLeft的替代方案:

lst.foldLeft(map)(addToMap)
Run Code Online (Sandbox Code Playgroud)