Sobes.tech
Junior — Middle

Може ли да се зададе реализация по подразбиране на метод в интерфейс или протокол?

sobes.tech AI

Отговор от AI

В Swift протоколите могат да съдържат реализации по подразбиране на методи чрез разширения (extensions). Това позволява да се зададе стандартно поведение за методите на протокола, което може да бъде презаписано в конкретни типове.

Пример:

protocol Greetable {
    func greet()
}

extension Greetable {
    func greet() {
        print("По подразбиране поздрав")
    }
}

struct Person: Greetable {}

let p = Person()
p.greet() // Ще изведе: По подразбиране поздрав

По този начин, реализирането по подразбиране не се задава в самия протокол, а в неговото разширение.