我正在学习ruby,并想知道是否可以从一个结合字符串的变量创建一个var。
a = "variable"
a+"_name" = []
variable_name => []
谢谢, CG
答案 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
=> []
希望你明白邪恶的评价是多少!