Tuplas
Las tuplas es un tipo de dato compuesto que es una de las grandes novedades que incorporó Swift, y cuyo mayor valor no es el tipo en sí, si no que está muy integrado en el sistema y por lo tanto podemos sacarle un gran rendimiento.
var alto = 2 var ancho = 2
Con ayuda de las tuplas, podemos reducir el código así:
var (alto, ancho) = (2, 2) print(alto) print(ancho)
Podemos enumerar tanto arrays como diccionarios a través de tuplas, pudiendo acceder a cada elemento de manera individual a través del índice.
Enumeraciones
Son un conjunto de datos de un mismo tipo que agrupa valores que se relacionan entre sí. Normalmente se usan para acotar posibles características de una propiedad, donde uno de los valores de la enumeración es asignado a una variable tipificada en esta.
Por ejemplo, si tenemos una propiedad de la clase vehículo que es puertas, es fácil saber qué valores vamos a poner: 1, 2, 3 o 4. Podemos usar un entero y poner los valores. Pero, ¿y sí queremos que estos sean los únicos posibles valores de nuestro campo? Usamos las enumeraciones.
enum puertas { case una, dos, tres, cuatro }
Las enumeraciones tienen dos tipos de valores: la descripción y el valor interno o valor hash. Nosotros siempre trabajaremos con la descripción, pero internamente el sistema les asigna un valor y es como reconoce cada correspondencia.
Ejemplo de como utilizarlo:
puertas.una puertas.una.hashValue
La primera instrucción nos devolverá la descripción y la llamada a hashValuenos devolverá lo que es el índice interno que ha autoasignado nuestra enumeración.
También podemos asignarle un valor a cada opción de nuestro enum. Este solo puede usarse si tipificamos el enum a un tipo de valor, como un String, un Float, un Int o un Character. Estos son los únicos tipos soportados,:
enum puertas:Int { case una = 1, dos = 2, tres = 3, cuatro = 4 } puertas.dos.hashValue puertas.dos.rawValue
enum puertas:Int { case una = 1 case dos case tres case cuatro }
var numPuertas:puertas numPuertas = .una switch numPuertas { case .una: print("Uno") case .dos: print("Dos") case .tres: print("Tres") case .cuatro: print("Cuatro") }