puts/print/pの違い(Ruby)

f:id:ryoutaku_jo:20190530205721p:plain

【結論】

Rubyで標準出力に出力する方法は、標準ライブラリに3種類(puts/print/p)存在する

・printは、引数のオブジェクトを文字列に変換し、標準出力に出力する。putsは、更に改行を加える。戻り値はnilになる。

・pは、引数のオブジェクトを分かりやすい文字列にして標準出力に出力します。戻り値は引数のオブジェクトになる。

【目次】

【本題】

標準出力に出力する方法

ターミナル上でコマンドを実行して、標準出力(画面)に出力する場合、Rubyでは3種類の方法があります。

今回は、それらの違いについてまとめます。

print

printは、引数のオブジェクトを文字列に変換し、標準出力に出力するメソッドです。

str = "ピコピコ太郎"
arr = ["apple", "pen", "pineapple"]

print str
ピコピコ太郎=> nil

print arr
["apple", "pen", "pineapple"]=> nil

puts

putsも、引数のオブジェクトを文字列に変換し、標準出力に出力するメソッドです。

printとの違いは、改行を追加するという点です。

str = "ピコピコ太郎"
arr = ["apple", "pen", "pineapple"]

puts str
ピコピコ太郎
=> nil

puts arr
apple
pen
pineapple
=> nil

p

pは、引数のオブジェクトを分かりやすい文字列にして標準出力に出力します。

また、戻り値はnilではなく、引数にしたオブジェクトになります。

str = "ピコピコ太郎"
arr = ["apple", "pen", "pineapple"]

p str
"ピコピコ太郎"
=> "ピコピコ太郎"

p arr
["apple", "pen", "pineapple"]
=> ["apple", "pen", "pineapple"]

参考情報

puts (Kernel) - Rubyリファレンス

print (Kernel) - Rubyリファレンス

p (Kernel) - Rubyリファレンス

《今日の学習進捗(3年以内に10000時間に向けて)》

正規表現の理解が甘く、どういった条件でバリデーションが働くのか 理解するのに苦慮した。正規表現は様々な場面で応用が利くので理解を深めたい。

・モデルに切り出すべきか、コントローラーを分けるべきかなど 設計に関する判断がまだまだ難しく感じる。 先輩のコードを見ながら、理解を深めたい。

・デバックを行う際には、 ユーザーがどのような行う操作を漏れなく想定する事はもちろんの事、 時間経過に伴う表示の変化なども注視する必要があると感じた。

学習開始からの期間 :174日
今日までの合計時間:1689h
一日あたりの平均学習時間:9.8h
今日までに到達すべき目標時間:1589h
目標との解離:100h
「10,000時間」まで、

残り・・・「8311時間!」