如何在散列的挖掘键中保存值

时间:2018-03-18 22:41:05

标签: ruby hash

我有一个哈希:

a = {b: {c: {d: e}}}

如何从d保存a?我应该这样写:

x = [:b][:c]
a(x) = "foo"

a 输出{b:{c:"foo"}}

3 个答案:

答案 0 :(得分:0)

正如mu在评论中指出的那样,你可能想要使用dig

a = {b: {c: {d: :e}}}
keys = [:b, :c] 
d_and_e = a.dig(*keys)

这将返回{d: :e}

答案 1 :(得分:0)

a[:b][:c].keys.first # => :d
a[:b][:c].keys.first.to_s # => "d"

答案 2 :(得分:-1)

hash.keys.join或hash.keys(如果只有一个键)