假设我们在Ruby中使用.dig
,如下所示:
some_hash = {}
some_hash.dig('a', 'b', 'c')
# => nil
返回nil
有没有一种方法可以在其他键存在的情况下给键c
赋值?例如,如果我想设置c
,我必须写:
some_hash['a'] = {} unless some_hash['a'].present?
some_hash['a']['b'] = {} unless some_hash['a']['b'].present?
some_hash['a']['b']['c'] = 'some value'
有没有更好的写法?
1条答案
按热度按时间0h4hbjxa1#
当你用如下的默认值初始化哈希值时,这可以很容易地实现:
使用
dig
(除了最后一个键)可以部分地设置哈希中具有嵌套默认值的嵌套值: