获取与字符串相关的全局变量的值

时间:2015-07-08 15:13:29

标签: ruby

我需要将字符串"variable_1"转换为全局变量$variable_1所拥有的值。 $variable_1的值已经定义。如何将字符串转换为对象?这可能吗?

我查看了方法instance_variable_set,但这不符合我的需要。

ruby​​forums上的一个帖子建议可以使用eval,例如,如果我要使用cucucmber和rspec比较两个变量,我可以这样做:

Then(/^I expect my variables to be different "(.*?)" "(.*?)"$/) do |count1, count2|
  expect(eval("$#{count1}")).not_to eq(eval("$#{count2}"))
end

是否有其他方法可以从其名称字符串中获取全局变量?

1 个答案:

答案 0 :(得分:2)

您可以使用eval这样的方法

$variable_1 = "Try"
s = "variable_1"

eval("$#{s}")

puts $variable_1
# => Try