2013-01-07 173 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" 
相關問題