我正在學習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