[英]Scala Map: mysterious syntactic sugar?
我刚刚发现了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训练的眼睛看起来有点奇怪,但你已经习惯了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.