我正在胡乱拼凑Ruby的Hash类。
class Hash
alias_method :_initialize, :initialize
def initialize
puts 'In my hash class'
_initialize
end
end当我这样做的时候
Hash.new它的工作方式与预期一致。但是假设我有一个接受Hash的函数。像这样,
foo 'a' => 'b'在本例中,没有使用我的Hash类。我希望调用我的Hash类的initialize方法。为什么会这样呢?
发布于 2013-03-20 12:56:48
因为文字散列不会调用Hash.new将调用的initialize方法。
与Hash['a', 'b']或Hash['a' => 'b']相同
https://stackoverflow.com/questions/15515370
复制相似问题