Переменная Ruby из конкатенации строковых переменных - PullRequest
0 голосов
/ 03 марта 2012

Я изучаю ruby ​​и задаюсь вопросом, возможно ли создать переменную из переменной в сочетании со строкой.

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

Спасибо, CG

Ответы [ 3 ]

4 голосов
/ 03 марта 2012

Вы можете легко сделать это с помощью переменной экземпляра как таковой:

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

Если вам интересно, почему это проще сделать с помощью ивара, прочитайте о правилах связывания переменных Ruby и области видимости.

3 голосов
/ 03 марта 2012

Но не делай этого.Намного проще и лучше использовать хеш:

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

или

vars = {}
vars[["variable", "name"]] = []
1 голос
/ 03 марта 2012

Если вы все еще хотите сделать с переменными:

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

Надеюсь, вы понимаете, как злой Эвал!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...