2013-01-07 132 views
8

当我们知道它的字符串名称时,是否有一种方法(meta programmation?)来读取/写入实例变量?如何从其“字符串名称”访问实例变量?

例如,我在类方法中使用了@my_var实例变量。 在这个过程中,我会加入一个字符串“my_var”,告诉我改变@my_var实例变量。

当然,我可以使用“if”语句,但我希望它更具动态性,因为我的方法中可能会有许多不同的实例变量。

我与“my_var” .classify和其他的东西思考的东西...

是否有人有线索?

感谢您的帮助

回答

14

使用instance_variable_setinstance_variable_get。请记住,该字符串需要具有领先地位@

@foo = "bar" 
# => "bar" 
instance_variable_get("@foo") 
# => "bar" 
instance_variable_set("@foo", "baz") 
# => "baz" 
@foo 
# => "baz" 
相关问题