Back to questions
Junior — Middle
72
Какие действия доступны при расширении протокола с помощью расширений?
Companies where asked
Itexus
Answer from AI
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!