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
改行をせずに出力する。内部的には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は配列を要素ごとに改行する