Las clases, estructuras y enumeraciones en swift

Poner clases, estructuras y enumeraciones juntos refleja sus características comunes en Swift, pero hay una distinción muy importante: Las enumeraciones y estructuras tipos de valores. Los casos de 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 estructura o enumeración ejemplo, cada uno con sus propios valores que son independientes de los demás.

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

Echar un vistazo a la tabla, que muestra las características disponibles en las clases, estructuras y enumeraciones. La mayor parte 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 están ligeramente redefinido por Swift. Se muestran en la parte izquierda de la tabla, y se describen brevemente a continuación.

Características de las clases, estructuras y enumeraciones
Característicaclasesestructurasenumeraciones
Instanciasxxx
propiedadesxxpropiedades calculadas solamente
métodosxxx
Los subíndicesxxx
inicializadoresxxx
extensionesxxx
protocolosxxx
Herenciax
la conversión de tiposx
Deinitializersx
ARCOx
  • 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 a sí misma como un objeto (por ejemplo, este es el caso de Objective-C). Para muchos idiomas, las variables declaradas como struct o enumeración, se denominan por el struct o enumeración nombre.

    En Swift, se trata de una ejemplo de un struct o enumeración, pero la gente todavía utilizan a menudo el nombre de tipo (como en “miVar es un MyStruct“) En lugar de como un ejemplo de una estructura en particular (”miVar es una instancia de MyStruct“). No pierda el sueño por esto.

  • propiedades: Se puede declarar propiedades que pueden ser almacenados o calculados a medida que se necesitan. (Sólo apoyo enumeraciones propiedades calcula.)

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

  • Los subíndices: Se puede declarar subíndices que le permiten acceder a los 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 objetos multi-dimensionales que se pueda acceder a veces como si fueran matrices unidimensionales y, a veces el uso de múltiples dimensiones. También son útiles en el manejo de índices no enteros.

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

  • extensiones: Las extensiones permiten agregar métodos y propiedades sin tener necesariamente el código para el objeto al que se está añadiendo ellos. (Propiedades sólo calculadas se pueden utilizar con las enumeraciones.)

  • protocolos: Puede definir métodos en un protocolo que debe ser implementada por cualquier objeto que se ajusta a ese protocolo.

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

  • La conversión de tipos: Usted puede tratar de una clase como su compartimento 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 casos de UIView. No todos los casos de UIView son ejemplos de UILabel.

  • Deinitializers: Deinitializers permiten limpiar justo antes de una instancia de clase está a punto de cancelar la asignación.

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

Artículos Relacionados