Đây không phải là bản sao của Ruby equivalent of Perl Data::Dumper. Câu hỏi đó là hơn 3,5 năm tuổi và do đó muốn kiểm tra là có bất kỳ tùy chọn mới có sẵn trong Ruby kể từ đó.Ruby tương đương với "Dữ liệu :: Dumper" của perl để in dấu/khung lồng nhau sâu
Tôi đang tìm perl's Dumper
tương đương với ruby. Tôi không quan tâm những gì Dumper làm đằng sau tấm màn. Tôi đã sử dụng nó rộng rãi để in sâu băm lồng nhau và mảng trong perl. Cho đến nay tôi đã không tìm thấy một thay thế trong ruby (Hoặc tôi có thể không có một cách để tận dụng tốt các lựa chọn thay thế có sẵn trong Ruby).
Đây là mã perl của tôi và đầu ra của nó:
#!/usr/bin/perl -w
use strict;
use Data::Dumper;
my $hash;
$hash->{what}->{where} = "me";
$hash->{what}->{who} = "you";
$hash->{which}->{whom} = "she";
$hash->{which}->{why} = "him";
print Dumper($hash);
OUTPUT:
$VAR1 = {
'what' => {
'who' => 'you',
'where' => 'me'
},
'which' => {
'why' => 'him',
'whom' => 'she'
}
};
Just Love the Dumper. :)
Trong ruby, tôi đã thử pp
, p
, inspect
và yaml
. đây là mã cùng của tôi trong ruby và sản lượng của nó:
#!/usr/bin/ruby
require "pp"
require "yaml"
hash = Hash.new{ |h,k| h[k] = Hash.new(&h.default_proc) }
hash[:what][:where] = "me"
hash[:what][:who] = "you"
hash[:which][:whom] = "she"
hash[:which][:why] = "him"
pp(hash)
puts "Double p did not help. Lets try single p"
p(hash)
puts "Single p did not help either...lets do an inspect"
puts hash.inspect
puts "inspect was no better...what about yaml...check it out"
y hash
puts "yaml is good for this test code but not for really deep nested structures"
OUTPUT:
{:what=>{:where=>"me", :who=>"you"}, :which=>{:whom=>"she", :why=>"him"}}
Double p did not help. Lets try single p
{:what=>{:where=>"me", :who=>"you"}, :which=>{:whom=>"she", :why=>"him"}}
Single p did not help either...lets do an inspect
{:what=>{:where=>"me", :who=>"you"}, :which=>{:whom=>"she", :why=>"him"}}
inspect was no better...what about yaml...check it out
---
:what:
:where: me
:who: you
:which:
:whom: she
:why: him
yaml is good for this test code but not for really deep nested structures
Cảm ơn.
những gì bạn có nghĩa là bởi * yaml là tốt cho mã kiểm tra này, nhưng không cho các cấu trúc lồng nhau thực sự sâu * ? –
đầu ra yaml là đau đớn (ít nhất là đối với tôi) để đọc và giải thích so với Dumper khi nói đến băm/mảng sâu. – slayedbylucifer
downvotes? để làm gì? có vấn đề gì với câu hỏi? – slayedbylucifer