有val mapList: List[Map[String, Int]]
拼接地圖,我想要做的事,如:斯卡拉從列表
val map = mapList foldLeft (Map[String, Int]()) (_ ++ _)
或
val map = mapList foldLeft (Map[String, Int]())
((m1: Map[String, Int], m2: Map[String, Int]) => m1 ++ m2)
也不選項編譯(第一寫着「丟失的參數類型擴展功能(x, y) => x ++ y
」第二種說法是「類型不匹配;發現(Map[String, Int], Map[String, Int]) => Map[String, Int];
要求:String
」)。
我想實現一個經典的解決方案來連接一個不可變的地圖列表,如List(Map("apple" -> 5, "pear" -> 7), Map("pear" -> 3, "apricot" -> 0))
會產生一個Map("apple" -> 5, "pear" -> 10, "apricot" -> 0)
。使用scala 2.10.5
。
你可以使用它的元數-1的方法或方法0(儘管後者通常是灰心的)。您不能將它用於具有多個參數或多個參數列表的方法。 –
更加簡潔地使用scalaz:'mapList.suml'。 – lmm
@Imm非常好! –