Это скорее гипотетический вопрос, но, допустим, я бы хотел изменить поведение +
(или любого другого арифметического оператора) на Int
в рамках области, что-то вроде этого (я знаю, что это что-то сумасшедшее и что-то такое, d стараются избегать вообще, но я считаю, это интересно):Можно ли переопределить встроенные операторы в Scala?
object MySillyStuff extends App {
def +(a: Int, b: Int) = a*b;
println(1+2)
}
возможно ли это так, или я только способен перегружать операторы через неявные преобразования с новым типом? (I.e., я должен явно создать 1
как член этого нового типа и использовать неявное преобразование 2
для этого конкретного типа).
Ok, так что в основном я не могу этого сделать. Мысль о том, что есть кое-какие взломы, хотя через переопределение вещей в «Predef» или что-то, но не видели никаких операторов там. Thx для разъяснения, сения! – rlegendi
@rlegendi: в scala нет операторов. '+' - это метод 'Int':' (1). + (2) '. Он не имеет ничего с 'Predef'. – senia
Можете ли вы доказать в своем примере, что умножение произошло вместо добавления? ;-) –