Ruby putsとprintとpの出力の違い

  • 作成日 2020.12.11
  • 更新日 2022.03.29
  • Ruby
Ruby putsとprintとpの出力の違い

Rubyで、putsとprintとpの出力の違いを実行したサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。

環境

  • OS windows10 pro 64bit
  • ruby 2.7.2p137

文字列出力

「hello world」を出力した結果で比較します。

s = 'hello world'

puts s # 改行つきで出力される

print s # 改行なしで出力される

p s # デバッグ用の出力 改行つき
 
p "end" # 改行確認用

# hello world
# hello world"hello world"
# "end"

改行つき文字列

改行つきのダブルクォーテーションで括った「”Hello World!\n”」を出力した結果で比較します。

# 改行つき文字列 ダブルクォーテーション
s = "Hello World!\n"

puts s # Hello World! 改行つき

print s # Hello World! 改行つき

p s # "Hello World!\n" 改行つき

p "end" # 改行確認用

# Hello World!
# Hello World!
# "Hello World!\n"
# "end"

シングルクォーテーションにすると以下となります。

# 改行つき文字列 シングルクォーテーション
s = 'Hello World!\n'

puts s # Hello World!\n 改行つき

print s # Hello World!\n 改行なし

p s # "Hello World!\\n" 改行つき

p "end" # 改行確認用

# Hello World!\n
# Hello World!\n"Hello World!\\n"
# "end"

オブジェクトを出力

オブジェクトの場合は、以下となります。

arr = [1, 2, 3]

puts arr 
# 1
# 2
# 3

print arr
# [1, 2, 3] 改行なし

p arr
# [1, 2, 3] 改行つき

p "end" # 改行確認用

# 1
# 2
# 3
# [1, 2, 3][1, 2, 3]
# "end"

ハッシュの場合は以下となります。

h = {'key1' => 1, 'key2' => 2, 'key3' => 3}

puts h
# {"key1"=>1, "key2"=>2, "key3"=>3} 改行つき

print h
# {"key1"=>1, "key2"=>2, "key3"=>3} 改行なし

p h
# {"key1"=>1, "key2"=>2, "key3"=>3} 改行つき

p "end" # 改行確認用

{"key1"=>1, "key2"=>2, "key3"=>3}
# {"key1"=>1, "key2"=>2, "key3"=>3}{"key1"=>1, "key2"=>2, "key3"=>3}
# "end"