Rubyを学習していたら、誰しもがputsメソッドやprintメソッド、pメソッドをよく見かけると思いますし、使うことも多々あるでしょう。
しかし、それぞれの違いをしっかりと理解していない人も少なくないのではないでしょうか。
というのも、私自身がその一人でした。
ある参考書ではputsを使って文字列などを出力しているけど、またある学習コンテンツではpを使って出力を行っている。そう思ったらprintメソッドというものもあるというのを知りました。
当時、Rubyの学習を始めたばかりで、それぞれの違いがわからない私は、どれを使ったら良いのかわからず混乱してしまいました。
当記事では、そのような方に向けてputs print pの3つのメソッドについて解説しています!
といってもそこまで難しいことでもないので、簡単に習得してしまいましょう!
puts、print、pメソッドの明確な違いとは?
簡単にいうとputs、print、pメソッドの違いとは、対象者の違いにあります。
putsとprintは一般ユーザー、pは開発者が対象者です。これがどういうことかというと、出力したい値が誰に向けたものかということです。
例えば、自身で開発したアプリケーションがあるとします。そのアプリケーションが実行される過程で、ユーザーに向けた何かを表示したい場合、putsやprintを使用します。
しかし、ここで注意が必要なのは、printは出力したいことの内容に改行がされないということです。
開発者側からしても、ユーザー側からしても、何か長い文章などが出力される時などに改行が行われないのはとても不便だと言えます。
ですので、一般的には一般ユーザに向けた出力をする場合はputsを使用します。
一方で、pは開発者に向けたメソッドです。
pのputsやprintとの大きな違いは、引数で渡されたオブジェクトがそのまま戻り値となるということです。
例えば、このようになります。
# 以下の内容を実行します。また、わかりやすくするためにirbなどで実行するための記述は省きます。
p "ダブルクオートも含まれた状態で出力されます"
"ダブルクオートも含まれた状態で出力されます" # 出力内容
=>"ダブルクオートも含まれた状態で出力されます"
# putsで出力した場合
puts "ダブルクオートも含まれた状態で出力されます"
ダブルクオートも含まれた状態で出力されます # 出力内容
=> nil
どうでしょうか?意外と3つのメソッドには大きな違いがあることが分かったのではないでしょうか。
まとめ
puts、print、pメソッドはそれぞれ同じ引数を扱っていても、違う出力結果を表示することがわかりました。
初心者目線でいうと、それぞれの対象ユーザを気にして使っていくことをお勧めします。
簡単に、一般ユーザに向けた出力内容を求める場合はputsメソッド、開発者向けの出力内容を求める場合ならpメソッドを使えば良いでしょう。