سؤال

ولقد وجدت للتو هذا النحو ل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