Взять имя переменной в качестве входного и вывести ее значение - Ruby - PullRequest
0 голосов
/ 23 мая 2019

Я хотел бы знать, есть ли что-то Ruby, которое делает что-то вроде этого:

@my_var = "foo"
some_function_i_dont_know_name_of("@my_var")
 => "foo"

Ответы [ 2 ]

5 голосов
/ 23 мая 2019

Похоже, вы ищете instance_variable_get.Из документов:

Возвращает значение заданной переменной экземпляра или nil, если переменная экземпляра не установлена.Часть @ имени переменной должна быть включена для обычных переменных экземпляра.Выдает исключение NameError, если предоставленный символ недопустим в качестве имени переменной экземпляра.Строковые аргументы преобразуются в символы.

class Fred
  def initialize(p1, p2)
    @a, @b = p1, p2
  end
end
fred = Fred.new('cat', 99)
fred.instance_variable_get(:@a)    #=> "cat"
fred.instance_variable_get("@b")   #=> 99
2 голосов
/ 23 мая 2019

Да, есть.

@my_var = "foo"
instance_variable_get("@my_var")
 => "foo"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...