我试图想象是否有可能创建一个可以模拟嵌套哈希访问的类,其中“嵌套”级别计数是任意的。例如:
fakeHash[:something][:other] # Results in single property call on fakeHash
我不能递归地返回对象——相反,我需要能够处理根对象级别的所有键,并从那里返回一个值。
不幸的是,没有,没有办法。这是因为它[]
是一种方法,并且能够无限次(可能)调用该方法的唯一方法是使用递归(这意味着您返回包含该方法的对象[]
而不是最终对象)。
即使它存在,也将是非常糟糕的设计。无论您试图对此做什么,您都做错了,并且生成的代码可能会让其他程序员感到困惑。
当然,您总是可以模拟如下内容:
class Nested
def [](s)
# do something with s
return self
end
end
这是一个例子。