Los Hashes en Ruby
Los hashes son estructuras de datos que permiten almacenar pares clave-valor. Son una herramienta fundamental en Ruby para trabajar con datos de forma organizada y eficiente.
Creación y acceso a valores: Link to heading
- Se pueden crear utilizando llaves y separando los pares por comas.
- El tamaño del hash se puede obtener con el método size.
- Se puede acceder a los valores por su clave.
Ejemplos: Link to heading
capitales = { }
capitales.class # => Hash
capitales = { "Colombia" => "Bogotá" }
# Agregar un valor nuevo
capitales["Mexico"] = "Ciudad de Mexico"
puts capitales # => { "Colombia" => "Bogotá", "Mexico" => "Ciudad de Mexico" }
# Acceder a un valor especifico
capitales["Colombia"] # => "Bogotá"
capitales.size # => 2
capitales.empty? # => false
capitales.has_value? "Colombia" # => false
capitales.has_key? "Colombia" # => true
# Invertir el hash (convertir valores a llaves/keys)
capitales.invert # => { "Bogotá" => "Colombia", "Ciudad de Mexico" => "Mexico" }
# Mezclar dos hashes
capitales.merge({"Brazil" => "Brasilia"}) # => {"Colombia" => "Bogotá", "Mexico" => "Ciudad de Mexico", "Brazil" => "Brasilia"}
# Transformar los valores
capitales.transform_values { |x| x.downcase } # => {"Colombia" => "bogotá", "Mexico" => "ciudad de mexico"}
# Print the content of the hash
puts capitales.map { |k, v| "La capital de #{k} es #{v}" } # La capital de Colombia es Bogotá, La capital de Mexico es Ciudad de Mexico
# Convertir un array en un hash
[["hola", 13], ["mundo", 14]].to_h # => {"hola" => 13, "mundo" => 14}
Métodos útiles: Link to heading
- each: Recorre el hash y ejecuta un bloque de código para cada par clave-valor.
- select: Filtra los pares clave-valor del hash y devuelve un nuevo hash con los que cumplen una condición.
- keys: Obtiene un array con las claves del hash.
- values: Obtiene un array con los valores del hash.
Ejemplo: Link to heading
capitales.each { |k, v| puts "La capital de #{k} es #{v}" } # La capital de Colombia es Bogotá, La capital de Mexico es Ciudad de Mexico
capitales.select { |k, v| v.length > 10 } # => {"Mexico" => "Ciudad de Mexico"}
capitales.keys # => ["Colombia", "Mexico"]
capitales.values # => ["Bogotá", "Ciudad de Mexico"]
Los hashes son una herramienta poderosa para almacenar y organizar datos en Ruby. Su flexibilidad y eficiencia los convierten en una parte fundamental del lenguaje.
¡Sigue aprendiendo sobre los hashes para aprovechar al máximo las ventajas de Ruby!