0
這是一個相當假設的問題,但我們假設我想在範圍內改變(或任何其他算術運算符)在Int
上的行爲,像這樣(我知道這是瘋狂的東西, ð儘量避免一般,但我覺得很有意思):是否有可能重寫Scala中的內置運算符?
object MySillyStuff extends App {
def +(a: Int, b: Int) = a*b;
println(1+2)
}
這是可能的這種方式,或者我只能通過超載隱式轉換運營商一個新的類型? (即,我必須明確地創建1
作爲該新類型的成員,並針對該特定類型使用2
的隱式轉換)。
好了,所以基本上我不能這樣做。雖然通過壓倒'Predef'中的某些東西,但還沒有看到任何操作符,但有一些破解。 Thx爲澄清,senia! – rlegendi
@rlegendi:scala中沒有運算符。 '+'是'Int'的方法:'(1)。+(2)'。它與'Predef'沒有任何關係。 – senia
你能證明你的例子中發生了乘法,而不是加法? ;-) –