47得票15回答
在Ruby中访问嵌套哈希的元素

我正在编写一个用Ruby语言实现的小工具,它大量使用了嵌套的哈希表。目前,我是按以下方式检查对嵌套哈希表元素的访问权限:structure = { :a => { :b => 'foo' }} # I want structure[:a][:b] value = nil if...

39得票7回答
在Ruby中将嵌套哈希键从CamelCase转换为snake_case

我正在尝试构建一个API包装器gem,并且在将哈希键从API返回的JSON转换为更Ruby风格的格式方面遇到了问题。 JSON包含多层嵌套,既有哈希又有数组。我想要做的是递归地将所有键转换为snake_case以便于使用。 这是我到目前为止所拥有的:def convert_hash_key...

34得票2回答
Ruby中的“哈希的哈希”习语是什么?

在Ruby中创建哈希的哈希允许方便地进行二维(或更高维)查找。然而,插入时必须始终检查第一个索引是否已经存在于哈希表中。例如:h = Hash.new h['x'] = Hash.new if not h.key?('x') h['x']['y'] = value_to_insert 最好采取...

32得票16回答
如何避免在嵌套哈希中缺少元素时出现NoMethodError,而无需重复使用nil检查?

我正在寻找一种避免在深度嵌套的哈希表中每个级别检查nil的好方法。例如:name = params[:company][:owner][:name] if params[:company] && params[:company][:owner] && param...

27得票7回答
从嵌套哈希中删除特定元素

我正在尝试使用嵌套哈希表进行操作。我有一副以以下方式表示的纸牌:deck_of_cards = { :hearts => {:two => 2, :three => 3, :four => 4, :five => 5, :six => 6, :seven =...

24得票5回答
Ruby dup/clone 递归操作

我有一个哈希表,例如:h = {'name' => 'sayuj', 'age' => 22, 'project' => {'project_name' => 'abc', 'duration' =>...

21得票5回答
如果hash['a']不存在,如何分配hash['a']['b']= 'c'?

有没有比它更简单的方法if hash.key?('a') hash['a']['b'] = 'c' else hash['a'] = {} hash['a']['b'] = 'c' end

17得票2回答
在Redis(缓存)中,多个键指向单个值的实现方式(使用Java)

我希望使用Jedis(Redis缓存)和Java存储一个值对应多个键。 我有三个键,如user_1、driver_10、admin_5,值为this is user,我想通过任意一个键获取它的值。

13得票3回答
如何创建嵌套哈希表

我如何在一个哈希中创建一个嵌套的哈希,并且让嵌套的哈希有一个键来标识它?同时,对于我在嵌套哈希中创建的元素,如何给它们分配键呢? 例如:test = Hash.new() #create second hash with a name?? test = Hash.new("test1")?...

8得票4回答
什么是访问任意深度嵌套哈希值的最Ruby-ish方式?

如果给定了一个哈希值: AppConfig = { 'service' => { 'key' => 'abcdefg', 'secret' => 'secret_abcdefg' }, 'other' => { 'service' ...