書く前のイメージ・・・
p putsよりなんかいい
pp pをよくしてくれるらしい(使ったことはない)
puts 改行する
print 改行しない
ちょっとひどいですね
調べました。
p
引数のオブジェクトをわかりやすく標準出力に出力。
デバッグ用です
pp
オブジェクトなどを見やすく出力するためのライブラリです。
pp ライブラリは、ユーザがあたらしく定義したクラスに対しても見やすい表示をするように作られていますので、Kernel.#pp を使う上で余計な作業をする必要はありません。
pretty printの略とのこと。
pと同じくデバッグ用です
puts
引数のオブジェクトを文字列に変換し、改行を加えて標準出力に出力。
to_sメソッドで文字列に変換される。
引数のオブジェクトを文字列に変換し、標準出力に出力。
to_sメソッドで文字列に変換される。
改行はされない。
参考
https://ref.xaio.jp/ruby/classes/kernel
https://docs.ruby-lang.org/ja/latest/library/pp.html
使ってみました
require "pp"
str = "string"
p str
# "string"
pp str
# "string"
print str
# string
puts str
# string
list = [1,"str",[1,2]]
p list
# [1, "str", [1, 2]]
pp list
# [1, "str", [1, 2]]
print "print=>"
# [1, "str", [1, 2]]
print list
# [1, "str", [1, 2]]
puts list
# 1
# str
# 1
# 2
hash = profile = {"last_name" => "tanaka",
'first_name' => "takuya",
'addres' => 'Tokyo',
'old' => 22,
'height' => 176,
"weight" => 63}
p hash
# {"last_name"=>"tanaka", "first_name"=>"takuya", "addres"=>"Tokyo", "old"=>22, "height"=>176, "weight"=>63}
pp hash
# {"last_name"=>"tanaka",
"first_name"=>"takuya",
"addres"=>"Tokyo",
"old"=>22,
"height"=>176,
"weight"=>63}
print hash
# {"last_name"=>"tanaka", "first_name"=>"takuya", "addres"=>"Tokyo", "old"=>22, "height"=>176, "weight"=>63}
puts hash
# {"last_name"=>"tanaka", "first_name"=>"takuya", "addres"=>"Tokyo", "old"=>22, "height"=>176, "weight"=>63}
感想
- ppでhashがかなり見やすくなる。巨大なデータを扱うときに使いたい。
- putsはarrayのカッコ記法を消し、要素ごとに改行して出力するため、配列のデバッグには向いていないです。