En el libro "Programación en Scala" de Martin Odersky hay un ejemplo sencillo en el primer capítulo:es el + en + = en un operador de prefijo Map of =?
var capital = Map("US" -> "Washington", "France" -> "Paris")
capital += ("Japan" -> "Tokyo")
La segunda línea también se puede escribir como
capital = capital + ("Japan" -> "Tokyo")
tengo curiosidad acerca de la + = notación. En el mapa de clase, no encontré un método + =. Pude el mismo comportamiento en un propio ejemplo como
class Foo() {
def +(value:String) = {
println(value)
this
}
}
object Main {
def main(args: Array[String]) = {
var foo = new Foo()
foo = foo + "bar"
foo += "bar"
}
}
estoy cuestionando a mí mismo, ¿por qué el + = notación es posible. No funciona si el método en la clase Foo se llama prueba por ejemplo. Esto me lleva a la notación de prefijo. ¿Es la notación de prefijo + a para el signo de asignación (=)? ¿Alguien puede explicar este comportamiento?
muchas gracias. Con su respuesta, también aprendí que esto funciona para más de un personaje (como ~ # ~). – Steve