当我们知道它的字符串名称时,是否有一种方法(元编程?)来读/写一个实例变量?
例如,我在类方法中使用了@my_var实例变量.
在这个过程中,我会想要一个字符串“my_var”来告诉我改变@my_var实例变量.
当然我可以使用“if”语句,但我希望它更具动态性,因为我的方法中可能有许多不同的实例变量.
我在考虑使用“my_var”.classify和其他东西……
有人有线索吗?
谢谢你的帮助
解决方法
使用instance_variable_set和instance_variable_get.请记住字符串需要具有前导@:
- @foo = "bar"
- # => "bar"
- instance_variable_get("@foo")
- # => "bar"
- instance_variable_set("@foo","baz")
- # => "baz"
- @foo
- # => "baz"