私は、initializeメソッドのインスタンス変数の値を設定しながら、attr_readerメソッドを作成する方法を探していますか?たとえば、次のコード:initializeメソッド内の対応するインスタンス変数の値を設定しながら、attr_readerメソッドを作成しますか?
class SomeClass
attr_reader :hello
def initialize(arg)
@hello = arg
end
end
私は次のように書くための方法を探しています:
class SomeClass
def initialize(arg)
some_method_as_described_in_question(@hello, arg)
end
end
は、私が説明している何をして方法はRubyのビルトインクラスとモジュールに存在していますか?
いいえ、このような方法はありません。 –
これは非常に便利なもののようですが、アクセス制御の問題ですか?なぜそれが含まれていないのですか? – rudolph9
インスタンスメソッド( 'initialize')で呼び出すメソッドを含めて、クラスのもの、つまり他のインスタンスのものを変更するのはおそらく変です。それとも、現在のインスタンスにリーダーを設定したいだけですか? Ruby 1.9で 'define_singleton_method'を使ってこれを行うことができます:https://gist.github.com/be3485dde76c0da72a00おそらくあなたはその質問を明確にすることができますか? –