Rubyのインスタンス変数を理解しようとすると少し狂っていると思います。私の唯一の目的は、与えられたクラスに対して作成されたすべてのオブジェクトに、の変数があり、そのクラスに対してinitialize
メソッドを書き込まないで、メソッドを書き込むことです。ような何か:Rubyのインスタンス変数の初期化
class Test
@my = []
attr_accessor :my
end
t = Test.new
t.my # I want [] but this shows nil
はそれがinitialize
に触れることなく、これを達成することは可能ですか?ありがとう。
EDIT:は明確にするために、私は、それが実行されているクラスにインスタンス変数を追加しますという意味でattr_accessor
と同様に実行されるコードのいくつかの作品を書いています。私が自分でinitialize
を書くと、私はユーザーが書いたものを壊してしまいます。
編集を参照してください。 – sasuke
私の悪い、私は "似ている"と言った。基本的に、この新しいメソッドは 'attr_accessor'のようなクラスに追加されると、そのクラスのために作成されたすべてのオブジェクトに新しいインスタンス変数を追加します。 – sasuke
ああ、私が思ったように、私はデフォルトの 'attr_reader'をそのような属性に依存することはできません。ただ一つの最後の質問:インスタンス変数をRubyでJavaなどのために初期化する方法はありませんか? – sasuke