Назад к вопросам
Junior — Middle
64
Являются ли все функции, объявленные в протоколе, обязательными к реализации для класса, его реализующего?
Компании, где спрашивали
Финам
Ответ от нейросети
sobes.tech AI
В Swift все функции, объявленные в протоколе, по умолчанию обязательны к реализации классом, который этот протокол принимает. Однако, если в протоколе указаны методы с реализацией по умолчанию через расширение (extension), то реализация таких методов в классе становится необязательной.
Пример:
protocol MyProtocol {
func requiredMethod()
func optionalMethod()
}
extension MyProtocol {
func optionalMethod() {
print("Default implementation")
}
}
class MyClass: MyProtocol {
func requiredMethod() {
print("Implemented required method")
}
// optionalMethod реализовывать не обязательно
}
Таким образом, обязательными являются только методы без реализации по умолчанию в протоколе.