Scala Carte: la mystérieuse sucre syntaxique?
Je viens de trouver cette syntaxe pour un scala Map
(utilisé ici dans mutable forme)
val m = scala.collection.mutable.Map[String, Int]()
m("Hello") = 5
println(m) //PRINTS Map(Hello -> 5)
Maintenant, je ne suis pas sûr de savoir si c'est syntaxiques sucre intégré à la langue, ou si quelque chose de plus fondamental qui se passe ici, impliquant le fait qu'une carte s'étend un PartialFunction
. Quelqu'un pourrait-il m'expliquer?
OriginalL'auteur oxbow_lakes | 2009-03-25
Vous devez vous connecter pour publier un commentaire.
Si vous voulez dire (ce serait bien si tu pouvais être plus explicite)
qui est destiné sucre syntaxique pour
indépendant de ce qui m est. Ceci est analogue à
qui est sucre syntaxique pour
(Je suis juste en train de lire "Programming in Scala".)
Pouvez-vous nous indiquer où la "mise à jour" la méthode est dans la hiérarchie? Je ne peux même pas trouver!
C'est à la page 40.
C'est le peu de "Programming in Scala" qui dit que m("Bonjour") = 5 est équivalent à m.mise à jour("Bonjour", 5). Mais je ne peux pas vraiment voir que la Carte a une méthode de "mise à jour".
Ah, c'est sur DefaultMapModel!
OriginalL'auteur starblue
@starblue est correct. Notez que vous pouvez aussi faire des choses créatives avec
update
, comme un retour des valeurs autres que ce qui a été assigné. Par exemple:Cela fonctionne parce que
immutable.Map#update
retourne une instance de la nouvelleMap
. Il semble un peu étrange pour le C-l'oeil exercé, mais vous vous habituez à elle.OriginalL'auteur Daniel Spiewak