Создание хэша хэша в Ruby

У меня есть хэш: hash1

hash1 = Hash.new

У меня есть еще один хэш: hash2

hash2 = Hash.new

Я добавил следующую пару ключ-значение:

hash2.store("k1","v1")
hash2.store("k2","v2")
hash2.store("k3",["v3","v4"])

Теперь я хочу иметь "key1" в hash1 который будет связан с "k1", "k2", "k3" из hash2,

Я хочу что-то в этом роде:

{"key1"=>{"k1"=>"v1", "k2"=>"v2", "k3"=>["v3", "v4"]}}

Как мне связать hash1 и hash2.

3 ответа

Решение

Да, сделайте так, как показано ниже:

hash1 = Hash.new

hash2 = Hash.new

hash2.store("k1","v1")
hash2.store("k2","v2")
hash2.store("k3",["v3","v4"])
hash1['key1']= hash2

p hash1

Это будет делать:

hash1['key1'] = hash2

Вы просто определяете ключ в своем новом хэше, а в качестве значения вы просто передаете хэш, который вы создали ранее:

h2 = {k1: "v1", k2: "v2", k3: ["v3","v4"]}
h1 = {key1: h2}
# => {:key1=>{:k1=>"v1", :k2=>"v2", :k3=>["v3", "v4"]}}

Или, если вы предпочитаете делать это с помощью метода магазина, просто передайте h2 в качестве аргумента:

h1["key1"] = h2
Другие вопросы по тегам