Rubyのプログラムでsprintfを見る機会がほとんどない理由
私も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です。