Ruby属性访问,模拟嵌套的哈希括号

时间:2013-09-26 16:55:42

标签: ruby hash

我试图想象是否可以创建一个可以模拟嵌套哈希访问的类,其中'嵌套'级别计数将是任意的。例如:

fakeHash[:something][:other] # Results in single property call on fakeHash

1 个答案:

答案 0 :(得分:1)

  

我不能递归地返回对象 - 相反,我需要能够处理根对象级别的所有键,并从那里返回一个值。

不幸的是,没有办法。这是因为[]是一个方法,并且能够无限次地(可能)调用该方法的唯一方法是使用递归(这意味着您返回包含方法{{1}的对象)而不是最终的对象。)

即使存在它也会是非常糟糕的设计。无论你想做什么,你做错了,生成的代码可能会让其他程序员感到困惑。


当然,您可以随时模拟以下内容:

[]

Here就是一个例子。