是否可以在ruby中执行动态变量?

时间:2010-01-30 17:14:36

标签: php ruby

我可以通过其他方式实现这种动态性,但它让我很好奇。在Ruby中是否有类似的机制?

$varname = "hello";
$$varname = "world";
echo $hello;  //Output: world

2 个答案:

答案 0 :(得分:7)

您可以使用eval

实现类似的功能
x = "myvar"
myvar = "hi"
eval(x) -> "hi"

答案 1 :(得分:5)

只能用于实例变量(和类变量):

class MyClass
  def initialize
    @varname = :"@hello"
    instance_variable_set @varname, "world"
  end

  def greet
    puts instance_variable_get(@varname)
  end
end

MyClass.new.greet
#=> "world"

对于局部变量,您必须使用eval