個人的勉強メモ置き場

プログラミングど素人のメモ置き場

puts print pのメモ

puts

改行を加えて出力する。内部的にto_sが呼ばれている

puts 123
123
=> nil

putsメソッド自身の戻り値はnilになる

putsは必ずnilを返します。
https://www.ruby-lang.org/ja/documentation/quickstart/


改行文字を含む文字を渡すと改行されて出力される

puts "abc\ndef"
abc
def
=> nil

配列は要素ごとに改行して出力される

puts [1, 2, 3]
1
2
3
=> nil

print

改行をせずに出力する。内部的にはto_sが呼ばれている。戻り値はnil

print 123
123=> nil

改行文字を含む文字を渡すと改行されて出力される

print "abc\ndef"
abc
def=> nil

配列はそのまま出力される

print [1, 2, 3]
[1, 2, 3]=> nil

p

改行を加えて出力する。内部的にはinspectメソッドが呼ばれている。また、戻り値はnilではなく引数のオブジェクトとなる

p 'abc'
"abc"
=> "abc"

改行文字を含む文字を渡すと改行文字のまま出力される

p "abc\ndef"
"abc\ndef"
=> "abc\ndef"

配列はそのまま出力される

p [1, 2, 3]
[1, 2, 3]
=> [1, 2, 3]

まとめ

・putsとprintはto_s、pはinspectメソッドが呼ばれている
・putsとpは改行する。printは改行しない
・pは改行文字をそのまま出力する
・putsとprintの戻り値はnil、pは引数のオブジェクト
・putsは配列を要素ごとに改行する