Ruby

【Ruby入門】putsメソッド?printメソッド?pメソッド?の違いをやさしく解説

※当サイトではアフィリエイトプログラムを利用して商品を紹介しています。

 

ひでまる
ひでまる
ひでまるです!今回はputsメソッド-printメソッド-pメソッドの違いを解説していきます

 

ターミナルに文字や数字を表示したい!そのときに使うのが出力メソッドであるputsメソッド、printメソッド、pメソッドです。

 

putsメソッド printメソッド pメソッドの違い

メソッド 改行 戻り値
puts あり nil
print なし nil
p あり 引数のオブジェクト

 

putsメソッド

putsメソッド

 

putsメソッドは「putsメソッドに続くものを表示する」メソッドですが
改行を加えながら出力し、putsメソッド自身の戻り値はnilになります

  • 改行
  • 戻り値はnil

 

putsメソッドの改行とは?

 

こちらの2つの値、「おはようございます」と「10」を出力してみると分かりやすいです!

puts "おはようございます",10
おはようございます #出力
10 #改行されて10が出力
=> nil  #戻り値

 

この様におはようございますを出力し、改行後、10を出力しています

 

戻り値のnilとは?

 

putsメソッドが機能して、出力した後の結果がnilになります
コードで詳しく見てみましょう!

def greeting
 puts "おはようございます" 
end

puts greeting.nil?

結果:
おはようございます  #greetingのputs おはようございますの結果
true #greeting.nil?結果

 

まずgreetingメソッドを作り、機能としてputs "おはようございます"を定義します
その下にputs greeting.nil?のコードを記述します

puts greeting.nil?のコードが読まれると

 

コード解説

  1. はじめにgreetingメソッドが呼ばれ「puts "おはようございます"」により、おはようございますが出力されます
  2. その後greetingメソッドの戻り値は「puts "おはようございます"」の戻り値となるため、nilになります
  3. nilという値がgreetingの呼び出し口、puts greeting.nil?のところに戻ります
  4. greeting.nil?とすることで、本当にgreetingはnilになっているか?確かめます
  5. 結果がtrueとなっているため、nilが戻り値として戻って来ています

 

 

printメソッド

printメソッド

 

printメソッドは「printメソッドに続くものを表示する」メソッドですが
改行はなし、printメソッド自身の戻り値はnilになります

  • 改行なし
  • 戻り値はnil

 

putsメソッドの改行とは?

 

こちらも2つの値、「おはようございます」と「10」を出力してみると分かりやすいです!

puts "おはようございます",10
おはようございます10 =>nil #改行されずに出力し戻り値はnil

 

この様に改行されずに出力されます

 

戻り値のnilとは?

 

printメソッドが機能して、出力した後の結果がnilになります
こちらもコードで詳しく見てみましょう!

def greeting
 print "おはようございます" 
end

print greeting.nil?

結果:
おはようございますtrue  #改行はされずに結果が繋がる

 

こちらも、おはようございますの後にtrueが来ているのでnilが戻り値として帰ってきていますね!
また、printメソッドは改行されないので繋がって表示されています

 

pメソッド

pメソッド

 

pメソッドは「pメソッドに続くものを表示する」メソッドですが開発者向けに作られており
文字を出力した場合ダブルクオーテーションも一緒に出力されるなど、値をそのままの形で出力します
また、改行を加えながら出力、pメソッド自身の戻り値は引数のオブジェクトになります

  • 改行
  • 値をそのままの形で出力
  • 戻り値は引数のオブジェクト

 

pメソッドの値をそのままの形で出力とは?

 

こちらは単純に"おはようございます"を出力してみると分かりやすいです!

p "おはようございます"
"おはようございます"

 

この様にダブルクオーテーション付きで出力されます
文字列は""を囲んで作るので値をそのままの形で出力していますね

 

戻り値は引数のオブジェクトとは?

 

pメソッドが機能して、出力した後の結果は引数のオブジェクトになります
こちらもコードで詳しく見てみましょう!

p "おはようございます"
"おはようございます"
=> "おはようございます"


puts "おはようございます"
おはようございます
=> nil

 

=>この部分に注目してみましょう!
実はこちらの=>は戻り値の値が表示されています。
putsを見てみるとnilになっていますね
ではpメソッドの=>を見てみると"おはようございます"になっているのが分かるかと思います。

putsメソッドの戻り値はnil

Pメソッド返り値は引数として渡した、"おはようございます"になります

 

まとめ

  • putsメソッドは改行を加えながら出力し、putsメソッド自身の戻り値はnilになります
  • printメソッドは改行はなし、printメソッド自身の戻り値はnilになります
  • pメソッドは文字を出力した場合ダブルクオーテーションも一緒に出力されるなど、値をそのままの形で出力します
    また、改行を加えながら出力、pメソッド自身の戻り値は引数のオブジェクトになります

-Ruby
-