217 votes

Comment ajouter un nouvel élément au hachage

Je suis nouveau dans Ruby et je ne sais pas comment ajouter un nouvel élément à un hash déjà existant. Par exemple, je construis d'abord hash :

hash = {item1: 1}

après cela, je veux ajouter l'élément 2, donc après cela, j'ai un hachage comme ceci :

{item1: 1, item2: 2}

Je ne sais pas quelle méthode utiliser pour le hachage, quelqu'un pourrait-il m'aider ?

352voto

pjumble Points 10734

Créez le hachage :

hash = {:item1 => 1}

Ajoutez-y un nouvel élément :

hash[:item2] = 2

83voto

Alexander Points 518

Si vous voulez ajouter de nouveaux éléments à partir d'un autre hachage - utilisez merge méthode :

hash = {:item1 => 1}
another_hash = {:item2 => 2, :item3 => 3}
hash.merge(another_hash) # {:item1=>1, :item2=>2, :item3=>3}

Dans votre cas particulier, cela pourrait être le cas :

hash = {:item1 => 1}
hash.merge({:item2 => 2}) # {:item1=>1, :item2=>2}

mais il n'est pas judicieux de l'utiliser lorsque vous devez ajouter un seul élément en plus.

Faites attention à ce que merge remplacera les valeurs par les clés existantes :

hash = {:item1 => 1}
hash.merge({:item1 => 2}) # {:item1=>2}

exactement comme hash[:item1] = 2

Vous devez également faire attention à ce que merge (bien sûr) n'affecte pas la valeur originale de la variable de hachage - elle renvoie un nouveau hachage fusionné. Si vous souhaitez remplacer la valeur de la variable de hachage, utilisez la méthode merge! à la place :

hash = {:item1 => 1}
hash.merge!({:item2 => 2})
# now hash == {:item1=>1, :item2=>2}

48voto

shilovk Points 70

hash.store(clé, valeur) - Stocke une paire clé-valeur dans un hash.

Exemple :

hash   #=> {"a"=>9, "b"=>200, "c"=>4}
hash.store("d", 42) #=> 42
hash   #=> {"a"=>9, "b"=>200, "c"=>4, "d"=>42}

<a href="http://ruby-doc.org/core-2.3.0/Hash.html#method-i-store" rel="noreferrer">Documentation</a>

28voto

Niklas B. Points 40619

C'est aussi simple que ça :

irb(main):001:0> hash = {:item1 => 1}
=> {:item1=>1}
irb(main):002:0> hash[:item2] = 2
=> 2
irb(main):003:0> hash
=> {:item1=>1, :item2=>2}

15voto

Connor Leech Points 1438

Hash[clé]=valeur Associe la valeur donnée par value avec la clé donnée par key.

hash[:newKey] = "newValue"

Extrait de la documentation Ruby : http://www.tutorialspoint.com/ruby/ruby_hashes.htm

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X