0

我经常遇到这样的情况,我想在 Ruby 中调试一些东西。然后我有一个带有“puts”的控制台输出。

以下示例:

Testvariable = 4
puts Testvariable

输出当然是:

4

现在我有很多输出,因此我经常写这样的东西:

Testvariable = 4
puts "Testvariable= " + Testvariable

那么输出是:

Testvariable= 4

现在这是一个非常简单的案例,但我希望它表明我的问题是什么。有这种可能吗???

Testvariable = 4
prettyputs Testvariable

并且输出是直接的

Testvariable = 4

我希望你明白,我的“问题”是什么?当然,写下完整的字符串并不是很多工作,但我只是想知道是否有一种快速简便的可能性?

4

2 回答 2

2

这是重复的:Ruby:获取变量名

简而言之:你不能得到一个变量的名字,但是你可以把一个字符串或者一个符号和你想显示的变量的名字放在一起

def prettyputs(symb, the_binding)
  var_name  = symb.to_s
  var_value = eval(var_name, the_binding)
  puts "#{var_name} = #{var_value.inspect}"
end

toto=1
prettyputs "toto",binding

或者

prettyputs :toto,binding
于 2014-11-19T12:12:25.840 回答
-1

有一个叫做“ap”的宝石awesome_print,它或多或少地做了你想要的。

您在此处列出的案例并没有真正解决问题,如果您正在“放置”东西,您可能想了解更多有关调试和测试工具的信息。

从 AP 文档中,考虑以下内容:

data = [ false, 42, %w(forty two), { :now => Time.now, :class => Time.now.class, :distance => 42e42 } ]

用 Ruby 的内置程序打印puts会很麻烦,但 AP 会打印以下内容:

$ ruby 1.rb
[
    [0] false,
    [1] 42,
    [2] [
        [0] "forty",
        [1] "two"
    ],
    [3] {
           :class => Time < Object,
             :now => Fri Apr 02 19:55:53 -0700 2010,
        :distance => 4.2e+43
    }
]

我意识到这并不是您想要的,但也许以下内容同样有用:

puts TestVariable.inspect

由于您将其命名为大写,因此我将假设它是一个类或常量,并且您想查看它的类型,这.inspect对您有用。

于 2014-11-19T12:05:37.993 回答