开发与发展时调试,我有时希望我能写出一个倾倒名称,类型和类型的1-liner一堆变量的值.问题是我不知道如何访问变量的名称,如果我可以的话.
这是第一次尝试:
foo = 1 bar = "42" baz = Hash.new [foo,bar,baz].each do |v| puts "#{v.???} = (#{v.class}) #{v}" end
我希望这个程序的输出是这样的:
foo = (Fixnum) 1 bar = (String) 42 baz = (Hash) ...
我不知道是什么???应该在上面.可以这样做吗?
解决方法
foo = 1 bar = "42" baz = Hash.new %w(foo bar baz).each do |vn| v = eval(vn) puts "#{vn} = (#{v.class}) #{v}" end
但是,如果你想要一个带有1个参数的方法,这当然不会对你有帮助.