Swift: Extensions (Расширения)

Схожи с категориями в Objective-C, но не имеют имен.
Позволяют расширить любой существующий класс, даже не имея доступа к исходным кодам, тот же Int

Как именно могут:
— добавлением вычисляемых свойств объекта и типа
— добавлением методов объекта и типа
— добавлением новых инициализаторов
— добавлением индексов
— добавлением и использованием новых вложенных типов
— позволить существующему типу следовать протокола

Вкратце — добавлять можно, переопределять нельзя

синтаксис

для следованию протоколу

Напичканый возможностями пример

1) пример вычисляемого свойства
2) пример добавленного метода, причем т.к. метод помечен как mutating — мы получаем возможность изменять сам объект (в случае значимого типа — будет произведено копирование)
3) пример добавленного инициализатора (в класс можно добавлять только convenience init)
4) пример добавления индекса — возвращает цифру числа по ее номеру в числе
5) добавлен вложенный тип, благодаря которому мы теперь можем определять какого типа число, положительное, отрицательное или ноль

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

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