Rubyのprint、puts、p、ppの違いについて
Rubyの出力用メソッドの違いを確認します。
- 改行なし
- 返り値は
nil
print 123 print '456' print "hoge\nfuga" hash = { hoge: 'fuga', hogehoge: 'fugafuga', hogehogehoge: 'fugafugafuga', hogehogehogehoge: 'fugafugafugafuga' } print hash print "\n" def output print "output\n" end p output # 123456hoge # fuga{:hoge=>"fuga", :hogehoge=>"fugafuga", :hogehogehoge=>"fugafugafuga", :hogehogehogehoge=>"fugafugafugafuga"} # output # nil
puts
- 改行あり
- 返り値は
nil
puts 123 puts '456' puts "hoge\nfuga" hash = { hoge: 'fuga', hogehoge: 'fugafuga', hogehogehoge: 'fugafugafuga', hogehogehogehoge: 'fugafugafugafuga' } puts hash def output puts 'output' end p output # 123 # 456 # hoge # fuga # {:hoge=>"fuga", :hogehoge=>"fugafuga", :hogehogehoge=>"fugafugafuga", :hogehogehogehoge=>"fugafugafugafuga"} # output # nil #
p
- 改行あり
- 文字列かわかるよう出力
- 返り値は引数
p 123 p '456' p "hoge\nfuga" hash = { hoge: 'fuga', hogehoge: 'fugafuga', hogehogehoge: 'fugafugafuga', hogehogehogehoge: 'fugafugafugafuga' } p hash def output p 'output' end p output # 123 # "456" # "hoge\nfuga" # {:hoge=>"fuga", :hogehoge=>"fugafuga", :hogehogehoge=>"fugafugafuga", :hogehogehogehoge=>"fugafugafugafuga"} # "output" # "output" #
pp
- 改行あり
- 文字列かわかるよう出力
- 返り値は引数
- 長いハッシュは整形される
# Ruby 2.5 以降は不要、自動でrequireしてくれる # require 'pp' pp 123 pp '456' pp "hoge\nfuga" hash = { hoge: 'fuga', hogehoge: 'fugafuga', hogehogehoge: 'fugafugafuga', hogehogehogehoge: 'fugafugafugafuga' } pp hash def output pp 'output' end pp output # 123 # "456" # "hoge\n" + "fuga" # {:hoge=>"fuga", # :hogehoge=>"fugafuga", # :hogehogehoge=>"fugafugafuga", # :hogehogehogehoge=>"fugafugafugafuga"} # "output" # "output" #