ターミナルへの出力で多用される、puts, print, pメソッドのちがいについて、あやふやなところがあったので、
ここでそれぞれのちがいをまとめておきます。
メソッド | 出力後の改行 | 配列の表示 | 呼び出すメソッド | 戻り値 |
---|---|---|---|---|
puts | あり | 要素ごとに改行 | to_s | nil |
なし | 改行しない | to_s | nil | |
p | あり | 改行しない | inspect | 引数のオブジェクト |
##putsメソッド
putsメソッドは改行を加えて、変数の内容やメソッドの戻り値をターミナルに出力します。
putsメソッド自身の戻り値はnilになります。
irb(main):001:0> puts 123
123
=> nil
irb(main):002:0> a = [1, 2, 3]
=> [1, 2, 3]
irb(main):003:0> puts a
1
2
3
=> nil
##printメソッド
printメソッドは、改行を加えません。
irb(main):004:0> print 123
123=> nil
##pメソッド
改行を加えて出力します。文字列を出力すると、その文字列がダブルクォーテーションで囲まれます。
また、引数で渡されたオブジェクトそのものがメソッドの戻り値になります。
irb(main):005:0> p 'abc'
"abc"
=> "abc"
irb(main):006:0> a = [1, 2, 3]
[1, 2, 3]
=> [1, 2, 3]