假设我有@chicken,但我想通过计数循环将其重命名为@chicken1 和@chicken2。生成名称后,"chicken#{@count}"
如何将输出转换为@chicken1 等名称?
问问题
220 次
1 回答
0
Ruby 有用于此类任务的方法remove_instance_variable
class A
def initialize
@chicken = 'chichen'
end
def rename
count = 1
instance_variable_set(:"@chicken#{count}", @chicken)
end
def remove
remove_instance_variable(:@chicken)
end
end
a = A.new
a.instance_variables #=> [:@chicken]
a.rename
a.instance_variables #=> [:@chicken, :@chicken1]
a.remove
a.instance_variables #=> [:@chicken1]
a.instance_variable_get("@chicken1") #=> "chicken"
于 2012-09-15T08:50:26.067 回答