用变量Ruby命名一个对象



我试图在脚本中创建对象,但我不明白如何使用变量命名来创建对象,请参阅下面的内容:

objname = "object"  # < Var used for Obj name
class SimpleClass
    def initialize(name)
    end
end
objname = SimpleClass.new("Jeff")  #does not work
# ^ using a variable to name the object
workingname = SimpleClass.new("Jeff") # will work

第S页你们都是最棒的,从一开始程序员的前景我不知道如果没有这个网站我会在哪里。

不确定为什么要这样做,但可以使用类似的实例变量来执行

objname = "object"  # < Var used for Obj name
class SimpleClass
  def initialize(name)
  end
end
instance_variable_set("@#{objname}", SimpleClass.new("Jeff")) 
#=> #<SimpleClass:0x228a548> 
@object
#=> #<SimpleClass:0x228a548>
instance_variable_get("@#{objname}")
#=> #<SimpleClass:0x228a548>

尽管如此,这是一个糟糕的设计概念,正如你所看到的,只使用标准的局部变量会更容易,因为你的代码中会充斥着instance_variable_get/set方法,这些方法在这种情况下没有实际用途。

最新更新