用于迭代的Scala语法?或者是其他东西?

时间:2016-09-03 18:13:40

标签: scala

我看到了一些像这样的代码。 从REPL测试看,它看起来像“/:”遍历字符并重复调用incr。但我找不到这种语法的任何文档。 /:语法在这里意味着什么?

val chars = List('a','b')
def incr(acc:Map[Char, Int], c:Char) = {
   val count = (acc get c).getOrElse(0) + 1
    acc + ((c, count))
}

(Map[Char,Int]() /: chars)(incr)

1 个答案:

答案 0 :(得分:1)

来自documentation

   *  Note: `/:` is alternate syntax for `foldLeft`; `z /: xs` is the same as
   *  `xs foldLeft z`