我刚刚发现了scala的这种语法Map
(这里以可变形式使用)
val m = scala.collection.mutable.Map[String, Int]() m("Hello") = 5 println(m) //PRINTS Map(Hello -> 5)
现在我不确定这是否是语言中内置的语法糖,或者这里是否有更基本的东西涉及地图扩展的事实PartialFunction
.谁能解释一下?
如果你的意思是(如果你能更明确的话会很好)
m("Hello") = 5
那意味着语法糖
m.update("Hello", 5)
独立于m是什么.这类似于
m("Hello")
这是语法糖
m.apply("Hello")
(我只是阅读"Scala编程".)
@starblue是正确的.需要注意的是,你还可以做颇具创意的东西update
比如返回值等比分配.例如:
val a = Map(1 -> "one") // an immutable Map[Int, String] val b = a(2) = "two" val c = b(5) = "five" val d = c(1) = "uno" d == Map(1 -> "uno", 2 -> "two", 5 -> "five") // => true
这是有效的,因为immutable.Map#update
返回新的实例Map
.C训练的眼睛看起来有点奇怪,但你已经习惯了.