Hashes

Objetivos

  • Hacer algunos hashes y obtener sus datos
  • Entender por qué se podría utilizar un Hash
  • Entender la diferencia entre Arreglos y Hashes

Paso 1

Type this in irb:
estados = {"CA" => "California", "DE" => "Delaware"}

Un arreglo sólo guarda elementos en algún orden. Un hash guarda pares de elementos, asociando llaves con valores.

El caracter { es comúnmente llamado 'llave', y el => es llamado 'rocket' o 'hashrocket'

Type this in irb:
estados.keys
estados.values

Puedes obtener de un hash un arreglo de sólo sus llaves o sus valores.

Type this in irb:
estados['CA']
estados['DE']

Con arreglos, accedemos a los elementos por su índice, un número. Con un hash, accedemos a los elementos por su llave.

Paso 2

Type this in irb:
  bici1 = {'marca' => 'Trek', 'color' => 'Plata'}
  bici2 = {'marca' => 'Cannondale', 'color' => 'Azul'}
  bicicletas = [bici1, bici2]

Los hashes son comúnmente utilizados para guardar las propiedades de algún objeto. Aquí, cada hash guarda las propiedades de una bicicleta.

Las llaves son comúnmente el nombre de la propiedad (aquí marca, color) mientras que los valores son el valor de la propiedad de un objeto dado (aquí, Trek, Plata).

Considera cómo hubieras tenido que guardar estos datos si no hubieras tenido un hash. ¿Qué más pudieras guardar en un hash?

Type this in irb:
  bicicletas[0]['marca']
  bicicletas[1]['color']

Cuando los objetos están muy anidados en arreglos y hashes, puedes acceder a los elementos uno después del otro como ésto.

Por ejemplo, en la primera línea, estamos obteniendo la primer bicicleta en el arreglo bicicletas (bicicletas[0]) y después estamos obteniendo su marca (bicicletas[0]['marca'])

Explicación

Los hashes son una fundamental manera de agrupar grandes cantidades de datos relacionados. En otros lenguajes, los hashes son llamados diccionarios, maps, o arreglos asociativos.

Lecturas adicionales

Documentación de Ruby para Hashes

Siguiente Paso: