【发布时间】:2011-09-19 03:05:53
【问题描述】:
我有一个像这样的“哈希树”:
dat = {
'building' => {'street' => 'High Street 10', 'people' =>[Person, Person]}
}
人可以是任何东西。
所以,在我的代码中,我可以像这样直接访问“建筑”:dat['building'],现在有办法以某种方式向上,再次访问{'building' => {...}}?
我目前有一个功能可以让我访问其中任何一个:
def info with_root = false
with_root ? dat : dat['building']
end #info
它看起来并没有犯罪(我认为),但我希望有更好的方法。
谢谢!
【问题讨论】:
-
与这个问题无关,但
'people' => [Person, Person]实际上是一个类数组,而不是一个人实例数组。此外,您可能希望考虑使用符号而不是字符串作为键。 -
我认为没有必要“向上”移动。你有一个顶层句柄,变量
dat。从那里,您可以到达任何“节点”。 -
@close voters:你投票结束的原因是英文略显蹩脚的部分吗?
-
@Andrew 我知道
[Person, Person]不是实例数组;我在上面的示例中使用了伪代码,但是感谢您指出这一点。而且我无法控制它们是字符串还是符号,因为我不生成哈希。哪个英文部分有点破? D: -
“Let's”不应该有撇号,并且“is there a way to go up the tree”也不需要逗号?