読者です 読者をやめる 読者になる 読者になる

【Ruby】表示メソッドについて (print, puts, p)

スポンサーリンク

Rubyは今の仕事でも少し使ってて、コードをある程度読めてちょっとした修正が出来る程度の知識しかなかったのですが、次の仕事では結構本格的に使う事になりそうなので、一から勉強する事にしました。まずは表示系のメソッドについてまとめてみます。

printメソッド

引数を順に出力します。文字列以外のオブジェクトが引数として与えられた場合には、 to_s メソッドにより文字列に変換してから出力します。オブジェクト間に改行は入りませんので必要であれば改行文字(\n)を付けて下さい。戻り値は nil です。

print("Hello Ruby ")
print(1234)
  #=>Hello Ruby 1234

print("Hello Ruby ", 1234)
  #=>Hello Ruby 1234

arr = [123, 456, 789]
print(arr)
  #=>[123, 456, 789]

hash = {"name"=>"鈴木", "age"=>30}
print(hash)
  #=>{"name"=>"鈴木", "age"=>30}

変数を含めて表示させたい場合は文字列の中に#{ 変数 }と記述します。ただこれは print メソッド独自の書き方という訳ではないです。

code = "Ruby"
print("Hello #{code}")
  #=>Hello Ruby

参考: module function Kernel.#print

putsメソッド

引数と改行を順番に出力します。引数がなければ改行のみを出力します。引数が配列の場合、その要素と改行を順に出力します。 配列や文字列以外のオブジェクトが引数として与えられた場合には、 当該オブジェクトを最初に to_ary により配列へ、 次に to_s メソッドにより文字列へ変換を試みます。 末尾が改行で終っている引数や配列の要素に対しては puts 自身 は改行を出力しません。戻り値は nil です。

puts("Hello Ruby ")
puts(1234)
  #=>Hello Ruby 
  #  1234

puts("Hello Ruby ", 1234)
  #=>Hello Ruby 
  #  1234

arr = [123, 456, 789]
puts(arr)
  #=>123
  #  456
  #  789

hash = {"name"=>"鈴木", "age"=>30}
puts(hash)
  #=>{"name"=>"鈴木", "age"=>30}

参考: module function Kernel.#puts

pメソッド

引数の内容を文字列と数値で分かり易く整形して改行と順番に出力してくれます。シングルクォートを使わないでもタブ \t や改行 \n をそのまま表示してくれ、主にデバックに使用されます。戻り値は引数であり、引数が複数ある場合は配列にして返してくれます。inspectメソッドとほぼ同じです。

p("Hello Ruby \n")
p(1234)
  #=>"Hello Ruby \n"
  #  1234

p("Hello Ruby \t", 1234)
  #=>"Hello Ruby \t"
  #  1234
戻り値#=>["Hello Ruby \t", 1234]

arr = [123, 456, 789]
p(arr)
  #=>[123, 456, 789]

hash = {"name"=>"鈴木", "age"=>30}
p(hash)
  #=>{"name"=>"鈴木", "age"=>30}

参考: module function Kernel.#p

その他

他に printf とか putc なんかもありますが自分的に今回の内容とは用途が少し違うかなと思ったので別でまとめたいと思います。

関連記事

 【Ruby】配列とハッシュの基本的な使い方 - TASK NOTES

 【Ruby】メソッドの基本について - TASK NOTES

 【Ruby】クラスの基本について - TASK NOTES