Scalaの地図:神秘的なシンタックスシュガー?
-
22-08-2019 - |
質問
私は、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("Hello")
のためのシンタックスシュガーである。
m.apply("Hello")
(私は "スカラ座でのプログラミング" を読んでいます。)
他のヒント
@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