我正在尝试在脚本中创建对象,但我无法通过使用变量来命名来创建对象,请参阅下文:
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
P.S 你们都是最好的,从一开始程序员的角度来看,我不知道没有这个网站我会在哪里。
答案 0 :(得分:2)
不确定为什么要这样做,但可以使用像
这样的实例变量进行预处理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方法填充,这些方法在这种情况下不会有任何实际用途。< / p>