Başka bir sağlamadan yeni öğeler eklemek istiyorsanız - kullanım merge
yöntemini kullanın :
hash = {:item1 => 1}
another_hash = {:item2 => 2, :item3 => 3}
hash.merge(another_hash) # {:item1=>1, :item2=>2, :item3=>3}
Özel durumunuzda şunlar olabilir:
hash = {:item1 => 1}
hash.merge({:item2 => 2}) # {:item1=>1, :item2=>2}
ancak yalnızca bir öğe daha eklemeniz gerektiğinde kullanmak akıllıca değildir.
merge
Değerlerin mevcut anahtarlarla değiştirilmesine dikkat edin :
hash = {:item1 => 1}
hash.merge({:item1 => 2}) # {:item1=>2}
tıpkı hash[:item1] = 2
Ayrıca, merge
yöntemin (elbette) karma değişkeninin orijinal değerini etkilemediğine dikkat etmelisiniz - yeni bir birleştirilmiş karma döndürür. Hash değişkeninin değerini değiştirmek istiyorsanız merge!
bunun yerine şunu kullanın:
hash = {:item1 => 1}
hash.merge!({:item2 => 2})
# now hash == {:item1=>1, :item2=>2}
hash.merge!(item2: 2)
için birleştirme ve değer tasarruf !