Ruby检查可读性?

Car*_*men 25 ruby

有没有办法让检查输出更具可读性?

在Perl中,有Data::Dumper一个使输出更容易阅读.

Pau*_*dge 34

ruby标准库包含PP("Pretty Print"的缩写),它比标准检查更好地格式化结构:

http://www.ruby-doc.org/stdlib/libdoc/pp/rdoc/index.html

你需要require 'pp'在你的源文件的顶部,然后才能使用它,然后只需更换p objpp obj在你的代码.

我发现它特别适用于哈希和数组!

  • PP还会将nice_inspect()添加到内核模块中,因此您只需将调用替换为inspect()即可. (4认同)

Aru*_*nan 6

试试awesome_print:http://www.rubyinside.com/awesome_print-a-new-pretty-printer-for-your-ruby-objects-3208.html


Esg*_*nri 6

就像@tjbp 说的,只是简单地使用pretty_inspect()而不是inspect()

它会给你很好的换行和缩进


knu*_*nut 5

除了'pp'解决方案,yaml可能是一个解决方案.

尝试:

require 'yaml'
puts [1,2,3=>'three'].to_yaml
Run Code Online (Sandbox Code Playgroud)

你得到:

--- 
- 1
- 2
- 3: three
Run Code Online (Sandbox Code Playgroud)

还有一个完全不同的方法:如果您对特定类有检查问题,请编写自己的检查代码

例:

class MyTest
  def initialize()
    @created = Time.now
  end
  def inspect()
    "Hi, I'm the objected created at #{@created}. That's #{Time.now - @created} seconds ago"
  end
end

x = MyTest.new
sleep 5
puts x.inspect
Run Code Online (Sandbox Code Playgroud)

你得到

Hi, I'm the objected created at 2011-06-28 12:48:38 +0100. That's 5.0 seconds ago
Run Code Online (Sandbox Code Playgroud)