Kotlin поддерживает перегрузку операторов для предопределённого набора операторов путём определения функций со специальными зарезервированными именами, отмеченными ключевым словом operator. Это можно реализовать либо как функции-члены, либо как функции расширения.
Каждый оператор соответствует определённому имени функции:
+ соответствует plus[] соответствует get / set>, <, >=, <= соответствуют compareTo== соответствует equalsin соответствует containsdata class Point(val x: Int, val y: Int) {
operator fun plus(other: Point) = Point(x + other.x, y + other.y)
}
val result = Point(1, 2) + Point(3, 4) // Point(4, 6)
Ключевое слово operator обязательно — его отсутствие приведёт к ошибке компиляции.
plus должен работать как сложение, а не вызывать неожиданные побочные эффектыКлючевое слово operator обязательно при определении перегрузки операторов в Kotlin; его отсутствие приведёт к ошибке компиляции.
Новый — ещё не проверен сообществом
Вы