In Scala, you use the +=
method to add a key-value pair to a Map. The key-value pair should be in the form of a Tuple, or a Pair. You can use different syntax for such pairs: ("year", 2008)
, "year" -> 2008
, Tuple2("year", 2008)
or Pair("year", 2008)
:
scala> ("year",2008) == "year" -> 2008
res0: Boolean = true
scala> "year" -> 2008 == Pair("year", 2008)
res1: Boolean = true
scala> Pair("year", 2008) == Tuple2("year", 2008)
res2: Boolean = true
Thus, a few different but equal ways of adding a key-value pair to a Map
:
scala> val map = new scala.collection.mutable.HashMap[String,Int]
map: scala.collection.mutable.HashMap[String,Int] = Map()
scala> map += (("year",2008)) //Notice the parentheses
scala> map += ("year" -> 2008)
scala> map += Pair("year",2008)
scala> map += Tuple2("year", 2008)
However, this one fails, because of missing parentheses:
scala> map += ("year",2008):6: error: type mismatch;
found : java.lang.String("year")
required: (String, Int)
map+=("year",2008)
^
You can check out, e.g., this and this thread on the Scala mailing list.
No comments:
Post a Comment