0

假设我有@chicken,但我想通过计数循环将其重命名为@chicken1 和@chicken2。生成名称后,"chicken#{@count}"如何将输出转换为@chicken1 等名称?

4

1 回答 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 回答