我正在学习ruby并想知道是否可以从与字符串组合的变量中创建var。来自字符串变量concatanation的Ruby变量
a = "variable"
a+"_name" = []
variable_name => []
感谢, CG
我正在学习ruby并想知道是否可以从与字符串组合的变量中创建var。来自字符串变量concatanation的Ruby变量
a = "variable"
a+"_name" = []
variable_name => []
感谢, CG
你可以用一个实例变量做到这一点很容易这样:
>> a = "variable"
=> "variable"
>> instance_variable_set(:"@#{a}_name", [])
=> []
>> @variable_name
=> []
如果你很好奇,为什么这很容易与伊娃的事,阅读关于Ruby变量绑定和范围规则的信息。
但不这样做。因此,更容易和更好地使用哈希:
variable = {}
variable['name'] = []
或
vars = {}
vars[["variable", "name"]] = []
柜面你还是想用变量的事:
>> a = 'variable'
=> "variable"
>> eval(a + '_name=[]')
=> []
>> variable_name
=> []
希望你能理解的eval怎么邪恶!
谢谢你的帮助:) – 2012-03-03 02:33:10
在这个@#{a} _name中做什么#是:将它设置为符号? – 2012-03-03 02:46:46
@CoryGwin:领先的':'使它成为一个符号,双引号字符串中的'#{}'就是普通的字符串插值。 – 2012-03-03 03:25:23