p array
要求した出力が得られます。
[[6,6,3]、[7,4,7]、[4,7,4]]
各行を別々の行に表示したいですか? 次に使用します。
array.each {|e| p e}
取得するため:
[6,6,3]
[7,4,7]
[4,7,4]
Array クラスにメソッドを追加できます。
class Array
def ppa # 'pretty-print array'
self.each {|e| p e} # or just 'each {|e| p e}'
end
end
それはあなたが書くことを可能にするでしょう
array.ppa
同じ 3 行の出力が得られます。( puts
andinspect
の代わりに使用できますp
。) これを頻繁に使用すると思いますか? 次に、このコードを「array_print.rb」という名前のファイルに入れ、'require array_print'
「.rb」コード ファイルの先頭に追加します。プログラムを実行するたびに、 のステートメントarray_print.rb
が実行され、Array
メソッドppr
が使用できるようになります。
それだけではありません!3 次元配列、ハッシュ、配列のハッシュなどについても適切にフォーマットされた出力が必要であるとします。上記で説明したアプローチについて詳しく説明することはできますが、なぜ車輪を再発明するのでしょうか? これらすべてを処理してくれる優れた Ruby gem がいくつかあります。人気の1つが「awesome print」。この gem をインストールrequire 'awesome_print'
したら、コード ファイルに追加するだけです。その後、そのap
メソッドを使用して出力をフォーマットできます。( gem のインストール方法については、RubyGemsを参照してください。簡単です)。
awesome print が何をするかを知るために、上記の配列の代わりに次のハッシュを表示したいとします。
hash = {"cat"=>["mice", "birds"], "dog"=>["master",["kids", "moms"]]}
を実行するap hash
と、次のようになります。
{
"cat" => [
[0] "mice",
[1] "birds"
],
"dog" => [
[0] "master",
[1] [
[0] "kids",
[1] "moms"
]
]
}