¿Se puede definir una función dentro de la definición de un protocolo?
sobes.tech AI
Respuesta de la IA
En Swift, dentro de la definición de un protocolo no se pueden implementar funciones: los protocolos solo describen los requisitos para métodos, propiedades y otros miembros que deben ser implementados en clases, estructuras o enumeraciones que cumplen con el protocolo.
Es decir, en un protocolo se puede declarar la firma de una función, pero no su cuerpo:
protocol MyProtocol {
func doSomething()
}
La implementación de la función doSomething() debe ser proporcionada en el tipo que hereda de ese protocolo.
Sin embargo, con la aparición de extensiones de protocolos (protocol extensions), se puede agregar una implementación predeterminada de los métodos, que estará disponible para todos los tipos que cumplen con el protocolo:
extension MyProtocol {
func doSomething() {
print("Implementación por defecto")
}
}
De esta manera, directamente dentro del protocolo no se puede definir una función, pero se puede agregar una implementación en la extensión del protocolo.