所以我有一个嵌套哈希,如下所示:
nested_hash = {
foo: foo,
bar: {
foo: foo,
bar: {
foo: foo,
bar: {
foo: bar
}
}
}
}
要访问不同级别的值,您可以使用多种方法,如下所示:
def one_level(key1)
nested_hash[key1]
end
def two_levels(key1, key2)
nested_hash[key1][key2]
end
def three_levels(key1, key2, key3)
nested_hash[key1][key2][key3]
end
但也许你需要像这样的一种方法:
def up_to_three_levels(key1, key2, key3)
if key1 && key2 && key3
nested_hash[key1][key2][key3]
elif key1 && key2
nested_hash[key1][key2]
else
nested_hash[key1]
end
end
这显然不是理想的,也不能扩展。如果我可以传递任意长度的数组以达到任意级别,那就太好了。有没有一种方法可以做到这一点?
(对于上下文:我要解决的问题是我需要将键路径作为参数并使用它从多个不同的数据结构中获取数据。)