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
你能证明你的例子中发生了乘法,而不是加法? ;-) –