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() // Ще изведе: По подразбиране поздрав
По този начин, реализирането по подразбиране не се задава в самия протокол, а в неговото разширение.