斯卡拉地图:神秘的语法糖?
-
22-08-2019 - |
题
我刚刚发现此语法一个阶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("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-训练有素的眼睛,但你习惯了它。
不隶属于 StackOverflow