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

Rubyのプログラムでsprintfを見る機会がほとんどない理由

Ruby

私もCとかやっていたので、sprintfの便利さは痛感していたのですが、
今でもRubyでsprintfを使ってしまう時があります。
しかし、先日naruseさんに指摘されたのを機会にメモっておきます。

sprintfを多くのRubyistが使わない理由は必要ないからです。

Rubyにもsprintfはもちろん存在していて、以下のように使います。

str=sprintf("price:%5d(tax:%d)",4000,200)

こんな感じで文字列を生成できます。しかし、Stringには
%というメソッドが存在していて、

str="price:%5d(tax:%d)"%[4000,200]

このように書けてしまいます。%に渡す引数は1個である必要があります。
複数ある場合は配列を渡します。
つまり、

str="price:%5d(tax:%d)"%([4000,200])

と同じです。(あんまり解説になっていないか。)

str="price:%5d"%4000

はOKですが、

str="price:%5d(tax:%d)"%(4000,200)

はNGです。