La declaración de un protocolo en el veloz

Un protocolo se introduce en Swift por la palabra clave protocolo. Contiene el # 173-declaraciones que deben ser implementadas por los tipos que adopten el protocolo. Los elementos más comunes de un protocolo son los métodos y propiedades. El ejemplo mostrado aquí utiliza una sola propiedad, sino múltiples propiedades en un Se permiten # 173-protocolo. Usted también puede tener propiedades en protocolos que son adoptadas por las clases y estructuras.

Funciones (métodos) pueden ser adoptadas por todos los tipos que pueden adoptar protocolos (es decir, clases, estructuras, y # 173-enumeraciones).

Un protocolo se llama igual que otros elementos de Swift se nombran. La declaración protocolo básico se ve así:

Protocolo MyProtocol {}

Al igual que con las clases, estructuras y enumeraciones, el nombre se escribe con mayúscula. De hecho, la mayoría de los objetos de Swift con excepción de propiedades y funciones se capitalizan, y utilizan interna el caso de Carmel (mayúsculas para cada una de las palabras incrustadas al primero).

Si el protocolo contiene una función que debe ser implementada por los tipos que lo adoptan, la declaración de protocolo podría tener este aspecto:

protocolo MyProtocol {func myFunc () -> Cadena}

Un objeto se ajuste a MyProtocol debe implementar myFunc.

Con el fin de centrarse en la sintaxis de los protocolos, los ejemplos aquí muestran ejemplo métodos en lugar de escribe métodos, que son comparables a clase métodos en Objetivo # 8208-C. Los métodos de instancia son los más utilizados.

Protocolos pueden heredar el uno del otro. Por lo tanto, se puede declarar un par de protocolos de la siguiente manera:

protocolo MyProtocol {func myFunc () -> Cadena} MyProtocol2 protocolo: MyProtocol {myFunc2 func () -> Cadena}

Un objeto se ajuste a MyProtocol debe implementar myFunc. Un objeto se ajuste a MyProtocol2 debe implementar myFunc2, pero también debe implementar myFunc porque MyProtocol2 hereda de MyProtocol. Si MyProtocol2 destaca por su cuenta (es decir, si no hereda de MyProtocol), Los objetos que se ajustan a cualquiera MyProtocol o MyProtocol2 debe implementar myFunc - pero esta es la misma función en ambos protocolos. Esto está bien. Eso sí, no creo que se tendría que aplicar dos veces.

No utilice una estructura en la que una función con el mismo nombre-8208 # (o propiedad) se utiliza en múltiples protocolos a menos que realmente significa. (Un en eso función sería un buen ejemplo de la utilización adecuada de los nombres de las funciones duplicadas.)

Si usted quiere que su protocolo que se adoptará solamente por clases, utilice la clase de palabras clave en la lista, como en el siguiente:

Protocolo MyProtocol: clase, MyProtocolToInheritFrom

Tenga en cuenta que la clase es la palabra clave que utilice: No es el nombre de una clase.




» » » » La declaración de un protocolo en el veloz