1
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.

🐣【Ruby入門】puts、print、p、ppメソッドの違い

Posted at

「puts、print、p、pp」は出力用のメソッドで使用されますが、改めて違いに関して整理したいと思います。:pencil2:

puts

sample.rb
puts 'hellow', 'world'
# => hellow
# => world

print

sample.rb
print 'hellow', 'world'
# => hellowworld

p

  • オブジェクトを出力後に改行する。
  • 引数で渡されたオブジェクトがそのまま戻り値になる。
  • Kernel.#p(Ruby 3.0)
sample.rb
puts '1' # => 1
p '1' #  => "1"

puts 1 #  => 1
p 1 #  => 1

puts '' #  => (空行)
p '' #  => ""

pp

  • オブジェクトを出力後に改行する。
  • 引数で渡されたオブジェクトがそのまま戻り値になる。
  • pメソッドとは違い、オブジェクトの構造を表示する際に、適当に改行を補って見やすく整形してくれる。
  • Kernel.#pp(Ruby 3.0)
sample.rb
p [{ a: 'aaa', b: 'bbb' }, { a: 'aaa', b: 'bbb' }, { a: 'aaa', b: 'bbb' }, { a: 'aaa', b: 'bbb' }]
# => [{:a=>"aaa", :b=>"bbb"}, {:a=>"aaa", :b=>"bbb"}, {:a=>"aaa", :b=>"bbb"}, {:a=>"aaa", :b=>"bbb"}]

pp [{ a: 'aaa', b: 'bbb' }, { a: 'aaa', b: 'bbb' }, { a: 'aaa', b: 'bbb' }, { a: 'aaa', b: 'bbb' }]
# => [{:a=>"aaa", :b=>"bbb"},
#     {:a=>"aaa", :b=>"bbb"},
#     {:a=>"aaa", :b=>"bbb"},
#     {:a=>"aaa", :b=>"bbb"}]

所感

  • 何気なく使用していたメソッドを改めて見ると、用途に合わせて使い分けた方が良いと思った。
  • 他にも戻り値が「nil」か「引数のオブジェクト」の違いがあり、呼び出すメソッドも「to_s」か「inspect」の違いもあったが、入門としてはここまで良いかなと思う。
1
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
1
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?