Документация

Синтаксис расширений

Расширение объявляется с помощью ключевого слова extension:

extension SomeType {
    // описываем новую функциональность для типа SomeType
}

Расширение может расширить существующий тип для того, чтобы он соответствовал одному или более протоколам. Там где это имеет место, имена протоколов записываются точно так же, как и в случае с классами или структурами:

extension SomeType: SomeProtocol, AnotherProtocol {
    // реализация требования протокола тут
}

Описание добавления соответствия протоколу таким образом описано в разделе Добавление соответствия протоколу через расширение.

Расширения могут быть использованы для расширения существующего универсального типа, что описано в Расширяем универсальный тип. Так же вы можете расширить универсальный тип, добавляя функциональность зависящую от условия, что описано в Оговорка where.

Заметка

Если вы определяете расширение для добавления новой функиональности существующему типу, то новая функциональность будет доступна всем экземпляром этого типа, даже если они были созданы до того, как было определено расширение.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.