sprintf
なんか気に食わない。Ruby っぽくないような気がする。
p sprintf("%05d", 123)
C言語っぽいね。
p "%05d" % 123
これはまぁまぁ。けど、いちげんさんでは読めない。
String#sprintf とかあったら良いと思うのだがどうか?
class String def sprintf(*args) Kernel.sprintf(self, *args) end end p "%05d".sprintf(123)
Integer#to_s(n) が n進数文字列を作ってくれるが、似たようなのがあると嬉しい。
class Integer def format(str) sprintf(str, self) end end p 123.format("%05d")
というか Integer#to_s(format) の方が良くね? いっそのこと Object#format だと問題ありすぎか?
Date#strftime も統一できたらなお良いが書式指定子の意味が違うからなー。