it-swarm.com.de

Wie man einen neuen Gegenstand zum Hash hinzufügt

Ich bin neu in Ruby und weiß nicht, wie ich einen neuen Gegenstand zu einem bereits existierenden Hash hinzufügen soll. Als erstes konstruiere ich einen Hash:

hash = {item1: 1}

danach möchte ich item2 hinzufügen. Danach habe ich einen Hash wie diesen:

{item1: 1, item2: 2}

Ich weiß nicht, wie ich mit Hash umgehen soll. Kann mir jemand helfen?

Erstellen Sie den Hash:

hash = {:item1 => 1}

Fügen Sie einen neuen Artikel hinzu:

hash[:item2] = 2
276
pjumble

Wenn Sie neue Elemente aus einem anderen Hash hinzufügen möchten, verwenden Sie die merge -Methode:

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

In Ihrem speziellen Fall könnte es sein:

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

es ist jedoch nicht ratsam, es zu verwenden, wenn Sie nur ein Element mehr hinzufügen möchten.

Achten Sie darauf, dass merge die Werte durch die vorhandenen Schlüssel ersetzt:

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

genau wie hash[:item1] = 2

Außerdem sollten Sie darauf achten, dass die merge -Methode (natürlich) den ursprünglichen Wert der Hash-Variablen nicht beeinflusst - sie gibt einen neuen zusammengeführten Hash zurück. Wenn Sie den Wert der Hash-Variablen ersetzen möchten, verwenden Sie merge! stattdessen:

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

hash.store (key, value) - Speichert ein Schlüssel-Wert-Paar im Hash.

Beispiel:

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

Documentation

27
shilovk

Es ist so einfach wie:

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}
25
Niklas B.

hash [key] = value Ordnet den durch value angegebenen Wert dem durch key angegebenen Schlüssel zu.

hash[:newKey] = "newValue"

Aus Ruby Dokumentation: http://www.tutorialspoint.com/Ruby/ruby_hashes.htm

14
Connor Leech
hash_items = {:item => 1}
puts hash_items 
#hash_items will give you {:item => 1}

hash_items.merge!({:item => 2})
puts hash_items 
#hash_items will give you {:item => 1, :item => 2}

hash_items.merge({:item => 2})
puts hash_items 
#hash_items will give you {:item => 1, :item => 2}, but the original variable will be the same old one. 
3
KrisT

Hash erstellen als:

h = Hash.new
=> {}

Fügen Sie nun Folgendes in den Hash ein:

h = Hash["one" => 1]
0
Ravi Kashyap