【发布时间】:2010-07-14 19:35:41
【问题描述】:
在开发和调试时,我有时希望我可以编写一个 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) ...
我不知道上面的??? 应该是什么。这个可以吗?
【问题讨论】:
-
您能否颠倒您的逻辑并采用 Glenn 的解决方案:stackoverflow.com/questions/58482/ruby-get-a-variables-name 我的理解是您无法获得变量的名称。
-
@Pat:这实际上与 Leventix 的解决方案相同,但语法不同。所以我想答案是肯定的。 :)
-
我不确定 exemplor 是否可以处理多个变量,但 exemplor 允许您调用
Show(variable)为您提供变量的名称及其值。 github.com/quackingduck/exemplor
标签: ruby