gpt4 book ai didi

ruby - 为什么 monkeypatching Hash.new 不起作用?

转载 作者:数据小太阳 更新时间:2023-10-29 07:39:42 27 4
gpt4 key购买 nike

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

最佳答案

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

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

关于ruby - 为什么 monkeypatching Hash.new 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15515370/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com