4

我正在修补 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方法被调用。为什么会这样?

4

1 回答 1

0

因为文字哈希不会调用将调用的initialize方法Hash.new

相同Hash['a', 'b']Hash['a' => 'b']

于 2013-03-20T04:56:47.670 回答