🐈

出力 puts, print, p, pp(Ruby)

2024/02/05に公開

はじめに

文字を出力する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