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

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

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

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

синтаксис

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

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

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

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.