Estructuras y Clases

Estructuras:

Son utilizadas para definir modelos de datos.

Se definen de la siguiente manera:

struct SomeStruct {
	//Aquí se definen las propiedades 
	//y métodos de la  estructura
} 

Una estructura es instanciada de la siguiente manera:

let someStruct = SomeStruct()

Si una estructura si es definida como constante, sus propiedades no pueden ser modificadas, es decir son inmutables

Clases:

Son utilizadas para representar objetos del mundo real los cuales tienen propiedades y métodos.

Se definen de la siguiente manera:

class SomeClass {
	//Aqui se definen las propiedades y métodos de la clase
}

Una clase es instanciada de la forma:

let someClass = SomeClass()

Esto nos devolverá un objeto de la clase SomeClass

Cuando se define un objeto de clase, si las propiedades de la clase se definen como variables, estas podrán ser modificadas, aun y cuando el objeto sea declarado como constante.

Diferencias entre estructuras y clases:

Estructuras: Una estructura no requiere de un método inicializador ya que éste se genera de manera automáticamente.

Clase: Requiere de la definición de un inicializador el cual es comúnmente el método init

Estructuras: Son del tipo “Value Types” lo que significa que cuando es instanciada una estructura y ésta es pasada como parámetro en una función o bien es asignada a otra variable se crea una copia del mismo, de tal forma que la instancia original no se ve afectada.