Dans le livre "Programming in Scala" de Martin Odersky, il y a un exemple simple dans le premier chapitre :
var capital = Map("US" -> "Washington", "France" -> "Paris")
capital += ("Japan" -> "Tokyo")
La deuxième ligne peut également être écrite comme suit
capital = capital + ("Japan" -> "Tokyo")
Je suis curieux de connaître la notation +=. Dans la classe Map, je n'ai pas trouvé de méthode +=. J'ai réussi à obtenir le même comportement dans un exemple personnel tel que
class Foo() {
def +(value:String) = {
println(value)
this
}
}
object Main {
def main(args: Array[String]) = {
var foo = new Foo()
foo = foo + "bar"
foo += "bar"
}
}
Je me demande pourquoi la notation += est possible. Elle ne fonctionne pas si la méthode de la classe Foo s'appelle test par exemple. Cela m'a conduit à la notation du préfixe. Le + est-il un préfixe pour le signe d'affectation (=) ? Quelqu'un peut-il expliquer ce comportement ?