Swift: Operator Functions (Операторные функции)

Мы можем переназначать для структур и классов операторы +, , и т.д.

Обратим внимание, что функция определена не внутри структуры, а определена как глобальная

Это позволит нам беспроблемно складывать векторы.

оператор + инфиксный и бинарный (должен находиться между двух операндов)

Так же можно переопределить унарные операторы, например ++ или . Причем как префиксные -a, так и постфиксные a++. Достигается это за счет ключевых слов prefix/postfix

Теперь мы можем получать вектор с обратными по знаку значениями x и y

Compound Assignment Operators (составные опреаторы присваивания)

Это операторы присваивания в которых присоединен оператор (+, *, и т.д.)

Можно комбинировать присваивание с префиксными и постфиксными модификаторами

Но нельзя переназначать как обычный оператор присваивания =, так и тернарный (a ? b : c)

Equivalence Operators (операторы равенства)

По умолчанию пользовательские классы и структуры не получают реализации равенства и неравенства (== и !=), так что их нужно так же определять как глобальные функции при необходимости

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

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