Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?
@yyykms123

puts、print、pの違い【Ruby超入門】

More than 1 year has passed since last update.

putsprintpのメソッドはいずれも出力に使うのだが、微妙に挙動が違う。

メソッド 出力後の改行 配列の表示 呼び出すメソッド 戻り値 対象者
puts あり 要素ごとに改行 to_s nil 一般ユーザ
print なし 改行しない to_s nil 一般ユーザ
p あり 改行しない inspect 引数のオブジェクト 開発者(デバック用)

puts

putsメソッドはオブジェクト出力後の末尾に改行が入る。

puts 123
puts 'abc'
実行結果
123
abc

print

printメソッドはオブジェクト出力後に改行を加えない。

print 123
print 'abc'
実行結果
123abc

p

pメソッドは主にデバック用で、オブジェクトと型表現も含めた形の文字列を出力し、末尾に改行が入る。
文字列を出力すると、その文字列がダブルクォートで囲まれている。

p 123
p 'abc'
実行結果
123
"abc"

\nのようなエスケープ文字もそのまま出力される。

p "abc\ndef"
実行結果
"abc\ndef"

違い

putsprintは改行するかしないかの違いとなる。

putspはいずれも、オブジェクトの内容を文字列に変換するメソッドを内部的に呼び出している。
しかしinspectを呼び出しているpの方が開発者にとって役立つ情報を返すように実施されるので、デバック用として使われる。

参考書

6
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
yyykms123
備忘録です。
miraito-inc
システムデザインを中心に置いた開発により高品質で使いやすいシステムを提供いたします。業務システム構築、アプリ開発、コンサルティングまで幅広く手がけています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
6
Help us understand the problem. What is going on with this article?