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.+=
?