用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)
以:字符结尾的方法名称可以在它们绑定的实例的左侧使用(即,它们与右侧相关联).在这种情况下,/:是一种方法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)
| 归档时间: |
|
| 查看次数: |
431 次 |
| 最近记录: |