我有一個方法爲register(key, val)
的類。我試圖添加key
作爲該類的實例變量,並將其設置爲val
。現在,我嘗試使用self.instance_variable_set(':@' + key, val)
但我得到這個錯誤:Ruby - 從字符串中設置類方法中的實例變量
in `instance_variable_set': `:@table' is not allowed as an instance variable name (NameError)
我打電話register('table', {'key' => 'value'})
不知道如何正確地做到這一點?謝謝!
@DaveNewton這是一個令人困惑的陳述。 – engineersmnky
@DaveNewton *「如果你引用'self',這不是一個類方法。」*這對我來說沒什麼意義。 'self'可以引用一個'Class',就像它可以引用一個'Class'的實例一樣,如果我們對這個技術有所瞭解,所有的方法都是'instance_methods',因爲一切都是一個實例。 – engineersmnky
出於好奇:錯誤信息真的很難理解嗎?你能否提供一些關於未來讀者如何改進的提示? –