Estoy revisando el tutorial de iOS de la página de desarrollador de Apple .
Me parece eso protocol
y interface
casi tiene la misma funcionalidad.
¿Hay alguna diferencia entre los dos?
¿El uso diferente en el proyecto?
Actualizado
Sí , leí el enlace de arriba y todavía no estoy seguro de cuáles son las diferencias y el uso entre protocol
y interface
. Cuando hago una pregunta como esta, me gustaría ver una explicación simple sobre el tema. En algún momento puede ser difícil obtener todo de la documentación.
Respuestas:
Esencialmente, los protocolos son muy similares a las interfaces de Java, excepto por:
.
Estas son las diferencias inmediatamente aparentes para un desarrollador Java (o al menos lo que he visto hasta ahora).
fuente
default
palabra clave . Vea el Tutorial de Oracle .Complementando la respuesta de @Thomas Schar. La magia del protocolo Swift proviene de la extensión.
2). La interfaz Java 8 puede tener implementaciones predeterminadas, pero no se puede hacer "retroactivamente".
sus implementaciones si es necesario) a cualquier clase o estructura.
"ceguera del soporte angular" en algunos casos.
Una cosa que me hizo rascarme la cabeza durante un par de horas es que no todos los protocolos se pueden usar como tipos de propiedad. Por ejemplo, si tiene un protocolo con typealias, no puede usarlo directamente como un tipo de propiedad (tiene sentido cuando lo piensa, pero viniendo de Java realmente queremos tener una propiedad como userDao: IDao).
fuente
required
antes de una función en un protocolo, solo obtienes'required' may only be used on 'init' declarations
...