val m = scala.collection.mutable.Map[String, Int]()
// this doesn't work
m += ("foo", 2)
// this does work
m += (("foo", 2))
// this works too
val barpair = ("bar", 3)
m += barpair
那么
m += ("foo", 2)
为什么不能正常工作呢?Scala 报错类型如下: error: type mismatch;
found : java.lang.String("foo")
required: (String, Int)
m += ("foo", 2)
^
显然,Scala认为我正在尝试使用两个参数调用
+=
,而不是一个元组参数。为什么?这不明显吗,因为我没有使用m.+=
吗?
m += ("foo" -> 2)
或者m += "foo" -> 2
。原文的意思是,在一个名为“m”的程序中,通过添加键值对“foo”和“2”来解决某个问题。 - agilesteel