Scala 为映射语法添加值

Scala 为映射语法添加值,scala,map,traits,Scala,Map,Traits,有地图 val m = Map("foo" -> 1, ("bar" -> 2), ("foobar", 3)) 我可以通过以下方式添加新元素: m + ("boo" -> 3) 或 但当我这么做的时候 m + ("ggg", 2) 我明白了 error : type mismatch; found : String("ggg") required: (String, ?) m + ("ggg", 2) ^ 你能

有地图

val m = Map("foo" -> 1, ("bar" -> 2), ("foobar", 3))
我可以通过以下方式添加新元素:

m + ("boo" -> 3)

但当我这么做的时候

m + ("ggg", 2)
我明白了

error   : type mismatch;
found   : String("ggg")
required: (String, ?)
          m + ("ggg", 2)
               ^
你能解释一下为什么会这样吗?

m+(“ggg”,2)
相当于
m+(“ggg”,2)
,它分别将
“ggg”
2
传递给方法
+
。如果您想将它们作为元组传递,那么编写
m+((“ggg”,2))
,或者
m+(“ggg”->2)
,正如您已经知道的那样

error   : type mismatch;
found   : String("ggg")
required: (String, ?)
          m + ("ggg", 2)
               ^