In dem Buch „Programming in Scala“ von Martin Odersky gibt es ein einfaches Beispiel im ersten Kapitel:ist die + in + = auf einer Karte einen Präfix-Operator von =?
var capital = Map("US" -> "Washington", "France" -> "Paris")
capital += ("Japan" -> "Tokyo")
Die zweite Zeile auch als
capital = capital + ("Japan" -> "Tokyo")
geschrieben werden kann, ich bin neugierig über die + = Notation. In der Klasse Map habe ich keine + = Methode gefunden. Ich war in einem eigenen Beispiel auf das gleiche Verhalten der Lage, wie
class Foo() {
def +(value:String) = {
println(value)
this
}
}
object Main {
def main(args: Array[String]) = {
var foo = new Foo()
foo = foo + "bar"
foo += "bar"
}
}
Ich selbst bin in Frage zu stellen, warum die + = Notation möglich ist. Es funktioniert nicht, wenn die Methode in der Klasse Foo zum Beispiel test heißt. Dies führte mich zur Präfixnotation. Ist das + eine Präfixnotation für das Zuweisungszeichen (=)? Kann jemand dieses Verhalten erklären?
Dank viel. Mit deiner Antwort habe ich auch gelernt, dass das für mehr als einen Charakter funktioniert (wie ~ # ~). – Steve