В Scala можно сделать обезьян заплат с помощью implicits, но вчера я увидел этот пример в рубин Жека Fixnum, это глупо, но я хотел бы реализовать его в СкалеScala Обезьяны заплат По сравнению с Руби
class Fixnum
def to_roman
'I'*self #only works until 3, but only for this purpose
end
def +(other)
self - other
end
end
puts 2.to_roman #This prints "II"
puts 1 + 1 #This prints 0
однако в Скале я не могу работать метод + (Инверсия)
object TestImplicits extends App {
implicit class ReverseInt(val original: Int) extends AnyVal {
def toRoman = { "I" * original }
def +(other:Int){
original - other
}
}
println(5.toRoman) // prints IIIII
println(5 + 3) // prints 8
}
Также лучше, что Scala does't имеет глобальный обезьяний заплаток, как Ruby?