Sobes.tech
Назад к вопросам
Junior — Middle
73

Какие действия доступны при расширении протокола с помощью расширений?

Компании, где спрашивали
Itexus

Ответ от нейросети

sobes.tech AI

В Swift расширения (extensions) позволяют добавлять новые возможности к существующим типам, включая протоколы. При расширении протокола с помощью extension можно:

  • Добавлять реализации методов и свойств по умолчанию, что позволяет избежать обязательной реализации этих методов в каждом типе, который наследует протокол.
  • Добавлять вычисляемые свойства.
  • Добавлять новые методы, которые будут доступны всем типам, соответствующим протоколу.

Однако расширения протоколов не позволяют добавлять новые требования (например, новые обязательные методы или свойства), только реализации по умолчанию.

Пример:

protocol Greetable {
    func greet()
}

extension Greetable {
    func greet() {
        print("Hello from protocol extension!")
    }
}

struct Person: Greetable {}

let p = Person()
p.greet() // Выведет: Hello from protocol extension!