一般に、名前が文字列にあるオブジェクトへの参照を取得するにはどうすればよいですか?名前が与えられたインスタンス変数の値を取得
具体的には、パラメータ名のリストがあります(メンバー変数は動的に構築されているため、直接参照することはできません)。
各パラメータは、from_s
メソッドも持つオブジェクトです。私は(...もちろん動作しません)、次のような何かやりたい
:インスタンス変数の名前からインスタンス変数を取得するには
define_method(:from_s) do | arg |
@ordered_parameter_names.each do | param |
instance_eval "field_ref = @#{param}"
field_ref.from_s(param)
end
end
instance_variable_get( "@#{name}")は変数の値を返しませんか?私は実際のオブジェクトへの参照が必要です。 多くの変数+名前を持つ配列を私が望む順番に並べ替えるのではなく、パラメータ自体を配列に入れました(設計の決定は、配列を検索するたびに変数にアクセスするか、 –
Nope:instance_variable_get( "@#{name}")は、実際のオブジェクトを返します。 –
もう少し明瞭にデッドスレッドを発見してください。 完全な例は次のようになります。 クラスコンピュータ attr_read:CPUの デフ新しい(のCPU) @cpus = CPUの エンド エンド ? –