Clases, estructuras y enumeraciones en rápida

Poner clases, estructuras y enumeraciones en conjunto refleja sus características comunes en Swift, pero hay una distinción muy importante: Las enumeraciones y estructuras son tipos de valor. Los casos de las enumeraciones y estructuras se copian cuando se pasan a una función o asignados a una variable o constante. Esto significa que usted puede tener múltiples copias de una instancia de estructura o recuento, cada uno con sus propios valores que son independientes de los otros.

Por otra parte, las clases son tipos de referencia. Cuando se les asigna a una variable o constante o cuando se pasan a una función, un referencia a la instancia es lo que se transmite. Porque hay una sola instancia que subyace a las referencias pasados ​​a funciones o asignados a las variables o constantes, un cambio en los valores de esa instancia subyacente se refleja en todas las copias.

Echa un vistazo a la tabla, que muestra las funciones disponibles en las clases, estructuras y enumeraciones. La mayoría de estas características son comunes a la mayoría de los lenguajes de programación orientados a objetos en una forma u otra. Algunos de ellos se redefinen ligeramente por Swift. Se muestran en la parte izquierda de la tabla, y se describen brevemente aquí.

Características de las clases, estructuras y enumeraciones
CaracterísticaClasesEstructurasLas enumeraciones
InstanciasXXX
PropiedadesXXSólo propiedades calculadas
MétodosXXX
Los subíndicesXXX
InicializadoresXXX
ExtensionesXXX
ProtocolosXXX
HerenciaX
Tipo de fundiciónX
DeinitializersX
ARCX
  • Instancias: Un objeto que es una representación real de una clase en la mayoría de los lenguajes orientados a objetos se denomina ejemplo. En algunos lenguajes orientados a objetos, también puede utilizar una clase como un objeto (por ejemplo, este es el caso de Objective-C). Para muchos idiomas, las variables declaradas como struct o enum, se refiere el struct o enum nombre.

    En Swift, es una ejemplo de un struct o enum, pero la gente todavía utilizan a menudo el nombre de tipo (como en "myVar es un MyStruct"), más que como una instancia de una estructura especial ("myVar es una instancia de MyStruct"). No pierda el sueño por esto.

  • Propiedades: Puede declarar propiedades que pueden ser almacenados o calculados conforme se van necesitando. (Sólo el apoyo enumeraciones calcula propiedades.)

  • Métodos: Puede declarar métodos que se puede acceder a través de cualquier instancia de estos objetos.

  • Los subíndices: Puede declarar subíndices que le permiten acceder elementos de una instancia de tipo basado en la lógica en el subíndice. Los ejemplos incluyen proporcionar múltiples esquemas de indexación para los objetos multi-dimensionales que a veces se pueda acceder como si fueran matrices unidimensionales y, a veces el uso de múltiples dimensiones. También son útiles en la gestión de los índices no enteros.

  • Inicializadores: Inicializadores permiten configurar las propiedades de una nueva instancia.

  • Extensiones: Extensiones permiten añadir métodos y propiedades sin necesidad de tener el código para el objeto al que está agregando ellos. (Sólo propiedades calculadas se pueden utilizar con las enumeraciones.)

  • Protocolos: Puede definir métodos en un protocolo que debe ser implementado por cualquier objeto que se ajuste a ese protocolo.

  • Herencia: Las clases pueden heredar de unos a otros formando un / estructura superclase subclase. Una clase puede tener cualquier número de subclases pero sólo uno (o no) de la superclase.

  • Tipo de calidad: Usted puede tratar de una clase como su sub o superclase si las condiciones lo permitan. Esto es básicamente un ejercicio estándar en la lógica. UILabel es una subclase de UIView- por lo tanto, todas las instancias de UILabel también son instancias de UIView. No todos los casos de UIView son los casos de UILabel.

  • Deinitializers: Deinitializers permiten limpiar justo antes de una instancia de clase está a punto de ser desasignado.

  • ARC: Recuento de referencias automático (ARC) le permite tener varias instancias de una clase. Cuando se pasa a su alrededor, que se pasan por referencia, de modo que, por ejemplo, si tiene dos instancias de UILabel, establecer el texto para una UILabel no tiene nada que ver con establecer el texto para la otra etiqueta.




» » » » Clases, estructuras y enumeraciones en rápida