2010-01-29 61 views
16

我正在学习Ruby & Perl有这个非常方便的模块,称为Data :: Dumper,它允许您递归地分析数据结构(如哈希)&允许您打印它。这在调试时非常有用。 Ruby有没有类似的东西?Ruby的等价Perl数据:: Dumper

回答

18

查找到第

例如:

require 'pp' 
    x = { :a => [1,2,3, {:foo => bar}]} 
    pp x 

也有检测方法也工作得很好

x = { :a => [1,2,3, {:foo => bar}]} 
    puts x.inspect 
2

可以使用MarshalamarshalYAML

+0

顺便说一句,谢谢所有这些模块。这是我可以使用的非常好的信息。 – John 2010-01-29 18:54:46

3

我通常使用YAM L转储,如果我需要快速检查一些东西。

irb的语法是简单的y obj_to_inspect。在一个普通的Ruby应用程序中,您可能需要向该文件添加一个require 'YAML',不确定。

这里是irb一个例子:

>> my_hash = {:array => [0,2,5,6], :sub_hash => {:a => 1, :b => 2}, :visible => true} 
=> {:sub_hash=>{:b=>2, :a=>1}, :visible=>true, :array=>[0, 2, 5, 6]} 
>> y my_hash # <----- THE IMPORTANT LINE 
--- 
:sub_hash: 
    :b: 2 
    :a: 1 
:visible: true 
:array: 
- 0 
- 2 
- 5 
- 6 
=> nil 
>> 

最后=> nil只是意味着该方法不返回任何东西。它与你的数据结构无关。