猴子修补 Hash 以使其像这样的行为可能会产生什么影响:
class Hash
def method_missing(method,*args, &block)
if self.has_key?(method)
return self[method]
elsif self.has_key?(method.to_s)
return self[method.to_s]
else
return nil
end
end
end
我的理由如下:
基本上,当我将对象添加到散列时,我会确保它们的 keys.to_s 是唯一的。
我应该担心,我错过了什么吗?
h = { :foo => "bar", "hello" => "bar" }
h.foo => "bar"
h.hello => "bar"