来自字符串变量连接的Ruby变量

时间:2012-03-03 02:17:37

标签: ruby

我正在学习ruby,并想知道是否可以从一个结合字符串的变量创建一个var。

a = "variable"
a+"_name" = []
variable_name => []

谢谢, CG

3 个答案:

答案 0 :(得分:4)

您可以使用实例变量轻松完成此操作:

>> a = "variable"
=> "variable"
>> instance_variable_set(:"@#{a}_name", [])
=> []
>> @variable_name
=> []

如果您对使用ivar更容易做到这一点感到好奇,请阅读有关Ruby变量绑定和范围规则的内容。

答案 1 :(得分:3)

但不要这样做。使用哈希更加容易和更好:

variable = {}
variable['name'] = []

vars = {}
vars[["variable", "name"]] = []

答案 2 :(得分:1)

如果您仍想使用变量:

>> a = 'variable'
 => "variable" 
>> eval(a + '_name=[]')
 => [] 
>> variable_name
 => [] 

希望你明白邪恶的评价是多少!