在從馬丁Odersky的書「編程在斯卡拉」沒有在第一章一個簡單的例子:是Map中的+ in + =前綴運算符=?
var capital = Map("US" -> "Washington", "France" -> "Paris")
capital += ("Japan" -> "Tokyo")
第二行也可以寫成
capital = capital + ("Japan" -> "Tokyo")
我很好奇+ =表示法。在Map類中,我沒有找到+ =方法。我能夠以相同的行爲在自己的例子中,如
class Foo() {
def +(value:String) = {
println(value)
this
}
}
object Main {
def main(args: Array[String]) = {
var foo = new Foo()
foo = foo + "bar"
foo += "bar"
}
}
我在質疑自己,爲什麼+ =表示法是可能的。例如,如果Foo類中的方法稱爲測試,則不起作用。這導致我的前綴符號。是賦值符號(=)的+前綴符號嗎?有人可以解釋這種行爲嗎?
非常感謝。隨着你的回答,我還了解到,這適用於多個角色(如〜#〜)。 – Steve 2010-05-06 08:03:40