Sobes.tech
Back to questions
Junior — Middle
69

Можно ли задавать реализацию метода по умолчанию в интерфейсе или протоколе?

Answer from AI

sobes.tech AI

В Swift протоколы могут содержать реализации методов по умолчанию через расширения (extensions). Это позволяет задать стандартное поведение для методов протокола, которое можно переопределить в конкретных типах.

Пример:

protocol Greetable {
    func greet()
}

extension Greetable {
    func greet() {
        print("Привет по умолчанию")
    }
}

struct Person: Greetable {}

let p = Person()
p.greet() // Выведет: Привет по умолчанию

Таким образом, реализация по умолчанию задаётся не в самом протоколе, а в его расширении.