Перегрузка операторов тема довольно противоречивая. Часто говорят, что это является причиной многих злоупотреблений, и эту возможность в С++ так оклеветали, что создатели языка Java сознательно отказались от нее (за исключением оператора "+" для конкатенации строк).
Подождите-ка минуту! Но мне говорили, что перегрузка операторов это зло!
В общем случае, операторы это давно знакомые Вам "+", "-", "*", "!" и множество других. При чем иногда один и тот же оператор может вести себя по разному в зависимости от того, чем он оперирует (например, + как взятие суммы целых чисел и + как операция конкатенации строк). Идея перегрузки операторов проста если поведение оператора меняется в зависимости от класса объектов, с которым он работает, то почему бы не определить ему новое поведение конкретно для Вашего класса?
Итак, что же такое перегрузка операторов?
Материал статьи рассчитан в основном на начинающих Scala-разработчиков.
Можно долго спорить, является ли возможность перегружать операторы сильной или слабой стороной конкретного языка. Но факт остается фактом в Scala такая возможность есть. Так почему бы её не использовать?
(Перевод) Перегрузка операторов в Scala
(Перевод) Перегрузка операторов в Scala / Хабрахабр
Комментариев нет:
Отправить комментарий