Swift: Custom Operators (Пользовательские операторы)

Мы можем определить абсолютно новые операторы (подробней по разрешенным символам для названия оператора лучше смотреть в документации)
Требования те же что и к переопределенным, нужно определять на глобальном уровне, можно использовать модификаторы prefix, infix или postfix

К примеру пусть будет оператор +++ удваивающий вектор.
Сначала определим сам оператор

А затем конкретную функцию его реализующую

Для наших новых infix операторов мы можем определять как приоритет (по умолчанию 100) так и ассоциативность.
Ассоциативность может быть left, right, и none (по умолчанию none).
left — первым будет выполнен самый левый оператор с тем же приоритетом
right — первым будет выполнен самый правый оператор с тем же приоритетом
none — нельзя ставить подряд 2 оператора с none ассоциацией (т.к. неясно какой оператор должен будет выполниться первым)

Определим оператор +-, который компоненту x будет складывать, а y — вычитать

Мы не можем указывать приоритет для prefix/postfix операторов, но если оба будут применены — первым выполнится постфиксный.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *