我需要将字符串"variable_1"
转换为全局变量$variable_1
所拥有的值。 $variable_1
的值已经定义。如何将字符串转换为对象?这可能吗?
我查看了方法instance_variable_set
,但这不符合我的需要。
rubyforums上的一个帖子建议可以使用eval
,例如,如果我要使用cucucmber和rspec比较两个变量,我可以这样做:
Then(/^I expect my variables to be different "(.*?)" "(.*?)"$/) do |count1, count2|
expect(eval("$#{count1}")).not_to eq(eval("$#{count2}"))
end
是否有其他方法可以从其名称字符串中获取全局变量?
答案 0 :(得分:2)
您可以使用eval
这样的方法
$variable_1 = "Try"
s = "variable_1"
eval("$#{s}")
puts $variable_1
# => Try