我正在通过Cay Horstmann的Scala for the Impatient book,我遇到了这种更新可变地图的方式.
scala> val scores = scala.collection.mutable.Map("Alice" -> 10, "Bob" -> 3, "Cindy" -> 8)
scores: scala.collection.mutable.Map[String,Int] = Map(Bob -> 3, Alice -> 10, Cindy -> 8)
scala> scores("Alice") // retrieve the value of type Int
res2: Int = 10
scala> scores("Alice") = 5 // Update the Alice value to 5
scala> scores("Alice")
res4: Int = 5
Run Code Online (Sandbox Code Playgroud)
它看起来像scores("Alice")命中apply在MapLike.scala.但这只返回值,而不是可以更新的值.
出于好奇,我在不可变的地图上尝试了相同的语法,并出现以下错误,
scala> val immutableScores = Map("Alice" -> 10, "Bob" -> 3, "Cindy" …Run Code Online (Sandbox Code Playgroud)