最初に nil として初期化されたインスタンス変数はどこにありますか? すべてのインスタンスに対してデフォルトで他の値として再定義できますか?
例えば:
class Class
#some code here or maybe in an Object class
end
class Foo1
attr_accessor :bar
end
class Foo2
attr_accessor :bar
end
p Foo1.new.bar # result is not nil
p Foo2.new.bar # result is not nil
これは、リーダーを変更することで実行できます。
class Class
def attr_accessor(attr_name)
...
define_method "#{attr_name}" do
if instance_variable_get "@#{attr_name}_history"
instance_variable_get "@#{attr_name}_history"
else
"Not nil"
end
end
...
end
end
しかし、これは Ruby のコアを理解するのに役立ちません。どうもありがとう!