вторник, 14 февраля 2012 г.

Scala, переопределение операторов


Продолжаю изучать Скалу.
Скала, как известно, тотально обьектно ориентирована. Здесь нет ни примитивов, ни операторов в прямом смысле этого слова. Однако, это совсем не значит, что вы не можете использовать "+","-" и другие операторы в своём коде.

"+" и "-" можно определить как методы в соответствуюших классах. Например, создадим класс Num

class Num (val intgr: Int){
  def +(num: Num)= {
    new Num( intgr + num.intgr)
  }

  def -(num: Num)= {
    new Num( intgr - num.intgr)
  }

  override def toString = "Num "+ intgr
}
и запустим такой скрипт, чтобы протестировать наш код:
val num1 = new Num(10)
val num2 = new Num(5)
println ( num1 + num2 )
println ( num1 - num2 )
Как нетрудно догадаться, результаты будут 15 и 5. Очень полезная возможность, не так ли?

Комментариев нет:

Отправить комментарий