Nel libro "Programming in Scala" da Martin Odersky c'è un semplice esempio nel primo capitolo:è il + in + = su una mappa un operatore prefisso di =?
var capital = Map("US" -> "Washington", "France" -> "Paris")
capital += ("Japan" -> "Tokyo")
La seconda linea può anche essere scritta come
capital = capital + ("Japan" -> "Tokyo")
Io sono curioso circa la + = notazione. Nella mappa di classe, non ho trovato un metodo + =. Ho potuto lo stesso comportamento in una propria esempio come
class Foo() {
def +(value:String) = {
println(value)
this
}
}
object Main {
def main(args: Array[String]) = {
var foo = new Foo()
foo = foo + "bar"
foo += "bar"
}
}
mi metto in discussione, perché il + = notazione è possibile. Ad esempio, non funziona se il metodo nella classe Foo è chiamato test. Questo mi ha portato alla notazione prefisso. + La notazione del prefisso per il segno di assegnazione (=)? Qualcuno può spiegare questo comportamento?
grazie mille. Con la tua risposta ho anche imparato che questo funziona per più di un personaggio (come ~ # ~). – Steve