【发布时间】:2017-09-27 21:19:08
【问题描述】:
我想要一个函数,它可以采用 [:a, :b, :c] 之类的数组并递归设置哈希键,从而创建所需的内容。
hash = {}
hash_setter(hash, [:a, :b, :c], 'value')
hash #=> {:a => {:b => {:c => 'value' } } }
hash_setter(hash, [:a, :b, :h], 'value2')
hash #=> {:a => {:b => {:c => 'value', :h => 'value2' } } }
我知道 Ruby 2.3 的 dig 可以通过这种方式获取,尽管这并不能完全让你得到答案。如果有一个相当于 dig 的 setter,那就是我正在寻找的。p>
【问题讨论】:
-
你为什么想要这个? o.0'
-
我正在将父->子关系从数组映射到哈希。
-
第一个参数是什么意思?我不太明白你的目的是什么
-
'寻找最短、最优雅的答案" - 基于意见的问题。"built-in or one-liner" – 抱歉,我通常不会评论这些东西,但你在 2 句话中触发了我 4 次......
-
@naomik 按照这些标准,这应该在 codegolf.stackexchange.com