3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Qiita株式会社Advent Calendar 2022

Day 11

【Ruby】「puts、print、p」の違いについて

Last updated at Posted at 2022-12-24

puts

  • オブジェクト出力後に改行して、メソッドの戻り値を出力する
  • putsメソッドの戻り値は「nil」になる
  • 配列を渡した場合、要素ごとに改行して出力する
  • 文字列以外のオブジェクトは、to_sメソッドによって文字列に変換される
> puts 123
123
=> nil

> puts 'foo'
foo
=> nil

> puts "foo\nbar"
foo
bar
=> nil

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

print

  • オブジェクト出力後に改行されない
  • printメソッドの戻り値は「nil」になる
  • 配列を渡した場合、配列をそのまま出力する
  • 文字列以外のオブジェクトは、to_sメソッドによって文字列に変換される
> print 123
123=> nil

> print 'foo'
foo=> nil

> print "foo\nbar"
foo
bar=> nil

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

p

  • putsメソッドと同じようにオブジェクト出力後に改行する
  • 文字列を出力すると、ダブルクォーテーション("")で囲んで出力する
  • 渡されたオブジェクトそのものがメソッドの戻り値になる。
    • 改行文字(\n)をそのまま出力する(改行されない)
  • 配列を渡した場合、配列をそのまま出力する
  • 文字列以外のオブジェクトは、inspectメソッドによって文字列に変換される
> p 123
123
=> 123

> p 'foo'
"foo"
=> "foo"

> p "foo\nbar"
"foo\nbar"
=> "foo\nbar"

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

参考

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?