10

文字列名がわかっているときにインスタンス変数を読み書きする方法(メタプログラミング?)はありますか?

たとえば、クラス メソッド内で使用される @my_var インスタンス変数があります。プロセス中に、@my_var インスタンス変数を変更するように指示する文字列 "my_var" が表示されることがあります。

もちろん、「if」ステートメントを使用することもできますが、メソッドに多くの異なるインスタンス変数が含まれる可能性があるため、より動的にしたいと考えています。

私は"my_var".classifyで何かを考えていました...

誰も手がかりを持っていますか?

ご協力いただきありがとうございます

4

1 に答える 1

15

とを使用instance_variable_setinstance_variable_getます。文字列には先頭が必要であることに注意してください@:

@foo = "bar"
# => "bar"
instance_variable_get("@foo")
# => "bar"
instance_variable_set("@foo", "baz")
# => "baz"
@foo
# => "baz"
于 2013-01-07T14:58:51.807 に答える