在 Ruby 中创建散列的散列允许方便的二维(或更多)维查找。但是,插入时必须始终检查第一个索引是否已存在于哈希中。例如:
h = Hash.new
h['x'] = Hash.new if not h.key?('x')
h['x']['y'] = value_to_insert
最好在自动创建新哈希的情况下执行以下操作:
h = Hash.new
h['x']['y'] = value_to_insert
同样,在查找第一个索引不存在的值时,如果返回 nil 而不是接收未定义的“[]”错误方法会更好。
looked_up_value = h['w']['z']
可以创建一个具有此行为的 Hash 包装类,但是否存在用于完成此任务的 Ruby 习语?