0

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

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

1 回答 1

1

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

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

即使它存在,也将是非常糟糕的设计。无论您试图对此做什么,您都做错了,并且生成的代码可能会让其他程序员感到困惑。


当然,您总是可以模拟如下内容:

class Nested
    def [](s)
        # do something with s
        return self
    end
end

是一个例子。

于 2013-09-26T17:06:55.160 回答