class Object
alias :old_initialize :initialize
def initialize
old_initialize
print "AN OBJECT WAS CREATED"
end
end
class Test
end
test = Test.new
これは期待どおりに動作します"AN OBJECT WAS CREATED"。
Arrayしかし、 、Hash、またはのようなコア クラスを使用するとString、何も起こりません。
array = Array.new
hash = Hash.new
string = String.new
何故ですか?それらはすべてからサブクラス化されていると思っていたObjectので、変更しても機能します。しかし、どうやらそれは私のカスタムクラスでのみ機能します。
さらに混乱させるために、警告が言ったように、"AN OBJECT WAS CREATED"基本的に新しいStringインスタンスを作成するため、私の変更は無限ループを作成する必要があることに気付きましたが、ループは発生しません。今、私はさらに混乱しています。
ルビー 1.8.7