Colecciones en Swift – Dictionary
Un Dictionary es una colección desordenada de objetos. Estos objetos serán almacenados en forma de pares «clave – valor», y accederemos a cada valor por su clave o key.
Declarar un Dictionary
En Swift podemos declarar un Dictionary de la siguiente manera:
var miDictionary: Dictionary<String, Int> = [«letra» : a, «numero» : 1]
Primero indicamos el tipo que tendrán nuestras claves y nuestro valores, después añadimos elementos en nuestro diccionario.
Fijaos como al declarar este Dictionary de objetos, no hace falta poner el símbolo @ para escribir los diferentes strings que contiene, es una de las diferencias de Swift con Objective-C.
Cómo en Swift existe la inferencia de tipos, podríamos declarar nuestro diccionario de la siguiente manera:
var miDictionary = [«letra» : a, «numero» : 1]
Otra cosa a tener en cuenta, es que en Swift no es necesario terminar cada sentencia de código con el punto y coma, muy habitual en Objective-C, no pasa nada si lo quieres poner, pero no es obligatorio.
Las anteriores declaraciones crearían un objeto Dictionary mutable, es decir podríamos añadir y eliminar elementos de ese Dictionary, si quisiéramos crear un Dictionary inmutable, esto es que no se pueda modificar en ningún caso, debemos declarar el mismo de la siguiente manera:
let dictionary = [«numero»: 1, «letra»: a]
Cómo veis solo he cambiado la palabra reservada var por let.
En Swift declaramos variables con la palabra var y declaramos constantes, es decir elementos inmutables, con la palabra reservada let.
Añadir elementos a nuestro Dictionary
Podemos añadir elementos a nuestro diccionario de la siguiente manera:
dictionary [«otroNumero»: 4]
Eliminar elementos de nuestro Dictionary
Usaremos el método removeValueForKey de la siguiente manera:
dictionary.removeValueForKey(«numero»)
Iterar con Diccionarios
Para enumerar los diferentes elementos de un diccionario podemos hacerlo con la siguiente instrucción:
for(key,value) in dictionary
{
println(«Clave: \(key) Valor:\(value)»)
}
Y esto es todo, si tienes alguna duda, déjame un comentario 😉
1 Comment