質問

私は、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-訓練された目には少し奇妙に見えますが、あなたはそれに慣れるます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top