puts/print/pの違い(Ruby)

【結論】

Rubyで標準出力に出力する方法は、標準ライブラリに3種類(puts/print/p)存在する

・printは、引数のオブジェクトを文字列に変換し、標準出力に出力する。putsは、更に改行を加える。戻り値はnilになる。

・pは、引数のオブジェクトを分かりやすい文字列にして標準出力に出力します。戻り値は引数のオブジェクトになる。

【目次】

【本題】

標準出力に出力する方法

ターミナル上でコマンドを実行して、標準出力(画面)に出力する場合、Rubyでは3種類の方法があります。

今回は、それらの違いについてまとめます。

print

printは、引数のオブジェクトを文字列に変換し、標準出力に出力するメソッドです。

str = "ピコピコ太郎"
arr = ["apple", "pen", "pineapple"]

print str
ピコピコ太郎=> nil

print arr
["apple", "pen", "pineapple"]=> nil

puts

putsも、引数のオブジェクトを文字列に変換し、標準出力に出力するメソッドです。

printとの違いは、改行を追加するという点です。

str = "ピコピコ太郎"
arr = ["apple", "pen", "pineapple"]

puts str
ピコピコ太郎
=> nil

puts arr
apple
pen
pineapple
=> nil

p

pは、引数のオブジェクトを分かりやすい文字列にして標準出力に出力します。

また、戻り値はnilではなく、引数にしたオブジェクトになります。

str = "ピコピコ太郎"
arr = ["apple", "pen", "pineapple"]

p str
"ピコピコ太郎"
=> "ピコピコ太郎"

p arr
["apple", "pen", "pineapple"]
=> ["apple", "pen", "pineapple"]

参考情報

https://ref.xaio.jp/ruby/classes/kernel/puts

https://ref.xaio.jp/ruby/classes/kernel/print

https://ref.xaio.jp/ruby/classes/kernel/p