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