Question

Je viens de trouver cette syntaxe pour une Map scala (utilisé ici dans mutable formulaire)

val m = scala.collection.mutable.Map[String, Int]()
m("Hello") = 5
println(m) //PRINTS Map(Hello -> 5)

Maintenant, je ne suis pas sûr que ce soit syntaxique sucre construit dans la langue, ou si quelque chose de plus fondamental qui se passe ici impliquant le fait qu'une carte étend un PartialFunction. Quelqu'un pourrait-il expliquer?

Était-ce utile?

La solution

Si vous voulez dire (ce serait bien si vous pouviez être plus explicite)

m("Hello") = 5

qui est destiné le sucre syntaxique pour

m.update("Hello", 5)

indépendamment de ce que m est. Ceci est analogue à

m("Hello")

qui est du sucre syntaxique pour

m.apply("Hello")

(je lis juste "Programmation Scala".)

Autres conseils

@starblue est correct. Notez que vous pouvez aussi faire des choses avec update plutôt créatives telles que les valeurs de retour autre que ce qui a été affecté. Par exemple:

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

Cela fonctionne parce que immutable.Map#update renvoie une instance de la nouvelle Map. Il semble un peu étrange à l'œil C-formé, mais on s'y habitue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top