🐈
出力 puts, print, p, pp(Ruby)
はじめに
文字を出力するputsメソッドに似た処理で、
print, p, ppメソッドがあります。
それぞれのメソッドをみて、学習していきましょう!
puts, print, p, ppメソッド
irbを使ってみていきます。
putsメソッド
putsメソッドは改行を加えて、メソッドの戻り値をターミナルに出力します。
irb(main):001:0> puts 'syommy'
syommy
=> nil
メソッドの戻り値はnilになります。
printメソッド
irb(main):002:0> print 'syommy'
syommy=> nil
printメソッドは改行されません。putsは改行されています。
これがputsとの違いです。戻り値は同様にnilです。
pメソッド
irb(main):003:0> p 'syommy'
"syommy"
=> "syommy"
pメソッドの戻り値はsyommyと出力されています。
pメソッドの戻り値は引数のオブジェクトです。
つまり、pメソッドに渡したメソッド名がそのまま戻り値となります。
*pメソッドはデバック用に使うメソッドのため、覚えておきましょう!
ppメソッド
ppメソッドもpメソッドと同様デバック用に使うメソッドです。
irb(main):004:0> pp 'syommy'
"syommy"
=> "syommy"
pメソッドと同様に出力されています。
この例だとわかりくいのですが、ppメソッドはpメソッドに比べて、
適切なインデントと改行で成形されます。
pメソッドで見にくいなと思ったときは、ppメソッドを試してみてください。
ppメソッドのデバッグ
デバッグではどういう例か気になったので、少し見てみましょう!
my_complex_hash = { name: "John", hobbies: ["Reading", "Cycling"], address: { city: "New York", zip: "10001" } }
pp my_complex_hash
これでみてみましょう!
% ruby print_p_pp.rb
{:name=>"John",
:hobbies=>["Reading", "Cycling"],
:address=>{:city=>"New York", :zip=>"10001"}}
横文字で見づらい文章も改行されて、非常に見やすくなりましたね!
使う場面はあるのかもしれないですね!
さいごに
今回は、puts, print, p, ppメソッドについてみていきました。
それぞれ微妙に役割が違うので、わからなくなったらまたここに戻ってきてみてください!
参考文献
Udemy:はじめてのRuby on Rails入門-RubyとRailsを基礎から学びウェブアプリケーションをネットに公開しよう
Discussion