@eldar_web

Как в Ruby из значения переменного можно создать переменную?

Есть к примеру переменная со значением str = 'auto'.
Вот могу ли я имея эту переменную создать новую переменную с его значением, т.е., создать переменную auto.
Если да, то как?
  • Вопрос задан
  • 274 просмотра
Пригласить эксперта
Ответы на вопрос 2
ibub1ik
@ibub1ik
Ruby/Rails Dev => Elixir
Если у вас возникла такая необходимость, то ваш код = говно. Но как ответ на вопрос, вот:
stackoverflow.com/questions/17842765/how-do-i-dyna...
Ответ написан
MAXOPKA
@MAXOPKA
В Ruby нельзя динамически объявить локальную переменную.

Но можно определить, например переменную экземпляра класса.
Пример:
str = 'auto'
eval "@#{str}= 'Такое то значение'"
p @auto


Так же можно определить метод с нужным именем, который будет возвращать значение. Например:
str = 'auto'
eval "def #{str}; 'Такое то значение' end"
p auto


НО так делать не нужно. Особенно, если `str` передается извне. Можно легко выстрелить себе в ногу:
str = 'eval'
eval "def #{str}; 'Такое то значение' end"

Хотя, например, в ActiveRecord динамически создаются методы с именами полей таблицы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы