Saltar al contenido

Cómo agregar a un hash existente en Ruby

Te doy la bienvenida a nuestra página, en este lugar vas a encontrar la solucíon a lo que necesitas.

Solución:

Si tiene un hash, puede agregarle elementos haciendo referencia a ellos por key:

hash =  
hash[:a] = 'a'
hash[:a]
# => 'a'

aquí, como [ ] crea un vacío array, creará un hash vacío.

Las matrices tienen cero o más elementos en un orden específico, donde los elementos pueden estar duplicados. Los hashes tienen cero o más elementos organizado por keydónde keys puede que no se dupliquen, pero los valores almacenados en esas posiciones sí.

Los hashes en Ruby son muy flexibles y pueden tener keys de casi cualquier tipo que puedas lanzarle. Esto lo hace diferente de las estructuras de diccionario que encuentras en otros idiomas.

Es importante tener en cuenta que la naturaleza específica de un key de un hash a menudo importa:

hash =  :a => 'a' 

# Fetch with Symbol :a finds the right value
hash[:a]
# => 'a'

# Fetch with the String 'a' finds nothing
hash['a']
# => nil

# Assignment with the key :b adds a new entry
hash[:b] = 'Bee'

# This is then available immediately
hash[:b]
# => "Bee"

# The hash now contains both keys
hash
# =>  :a => 'a', :b => 'Bee' 

Ruby on Rails confunde esto un poco al proporcionar HashWithIn differentAccess donde se convertirá libremente entre los métodos de direccionamiento Symbol y String.

También puede indexar casi cualquier cosa, incluidas clases, números u otros hashes.

hash =  Object => true, Hash => false 

hash[Object]
# => true

hash[Hash]
# => false

hash[Array]
# => nil

Los hashes se pueden convertir en matrices y viceversa:

# Like many things, Hash supports .to_a
 :a => 'a' .to_a
# => [[:a, "a"]]

# Hash also has a handy Hash[] method to create new hashes from arrays
Hash[[[:a, "a"]]]
# => :a=>"a" 

Cuando se trata de “insertar” cosas en un hash, puede hacerlo de una en una o usar el merge método para combinar hashes:

 :a => 'a' .merge(:b => 'b')
# :a=>'a',:b=>'b'

Tenga en cuenta que esto no altera el hash original, sino que devuelve uno nuevo. Si desea combinar un hash en otro, puede utilizar el merge! método:

hash =  :a => 'a' 

# Returns the result of hash combined with a new hash, but does not alter
# the original hash.
hash.merge(:b => 'b')
# => :a=>'a',:b=>'b'

# Nothing has been altered in the original
hash
# => :a=>'a'

# Combine the two hashes and store the result in the original
hash.merge!(:b => 'b')
# => :a=>'a',:b=>'b'

# Hash has now been altered
hash
# => :a=>'a',:b=>'b'

Como muchos métodos en String y Array, el ! indica que es un en su lugar operación.

my_hash = :a => 5
my_hash[:key] = "value"

Si desea agregar más de uno:

hash = :a => 1, :b => 2
hash.merge! :c => 3, :d => 4
p hash

Aquí puedes ver las comentarios y valoraciones de los lectores

Recuerda que puedes mostrar esta reseña si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *