假设我有@ count,但我想通过count循环将其重命名为@chicken1和@chicken2。一旦我生成了像"chicken#{@count}"这样的名称,我该如何将输出转换为@chicken1等呢?
发布于 2012-09-15 16:50:26
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"https://stackoverflow.com/questions/12435838
复制相似问题