Back to questions
Junior — Middle
69
Каким образом можно внедрить общий метод для обработки всех коллекций, реализующих определённый протокол?
Answer from AI
sobes.tech AI
В Swift можно определить расширение (extension) для протокола, чтобы добавить общий метод, который будет доступен всем типам, реализующим этот протокол. Если у вас есть протокол, который описывает коллекцию, например Collection, вы можете добавить метод в его extension.
Пример:
extension Collection {
func describe() -> String {
return "Коллекция содержит \(self.count) элементов"
}
}
let array = [1, 2, 3]
print(array.describe()) // Коллекция содержит 3 элементов
let set: Set = ["a", "b"]
print(set.describe()) // Коллекция содержит 2 элементов
Таким образом, все коллекции, которые соответствуют протоколу Collection, автоматически получают метод describe(). Это позволяет централизованно реализовать функциональность для множества типов.