Как получить доступ к значению символа?

Чтобы получить значение переменной, соответствующей данному символу, используйте id2name, чтобы получить имя переменной, а затем eval, чтобы получить значений переменной:

  a = 'This is the content of "a"'
  b = eval(:a.id2name)
  a.id == b.id  # b сейчас ссылается на тот же объект, что и a

Если символ соответствует имени метода, можно использовать метод Method.method, который возвращает соответствующий объект класса Method, который затем можно вызвать.

  class Demo
    def meth
      puts "Hello, world"
    end
  end

  d = Demo.new
  m = d.method(:meth)
  m.call

Вход для пользователей