Как распечатать значение и имя каждого аргумента из списка аргументов - PullRequest
0 голосов
/ 22 марта 2019

У меня есть

a = 'a string'
b = 3

Я использую этот общий шаблон:

puts "a: #{a}, b: #{a}"

Я хотел бы сделать это с помощью метода, например,

def puts_auto(*args)
  str = args.map { |arg| "#{arg.object_name #{a}" }.join('')
  puts str
end

, гдеobject_name находит имя объекта, который использовался для создания аргумента.Есть ли такой метод, как object_name?Есть ли способ напечатать значение и имя каждого аргумента из списка аргументов в виде сплата?

1 Ответ

0 голосов
/ 22 марта 2019

Используя Отметьте предложение относительно этого вопроса SO , следующие работы

  def puts_auto (*args, &b)
    str = args.map { |arg| "#{arg} = #{eval(arg.to_s, b.binding)}" }.join(', ')
    puts str
  end

так

puts_auto(:a, :b){} # outputs `a = a string, b = 3`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...