سكالا خريطة: غامض نحوي السكر؟
-
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")
و(أنا مجرد قراءة "البرمجة في سكالا").
نصائح أخرى
و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، ولكنك تعتاد على ذلك.