Ruby

ruby の sprintf書式文字列の、あまり使われていないような気がする機能

More than 5 years have passed since last update.

ruby の sprintf というか、書式文字列 % 値 の、書式文字列。

"%*d" % [7,123456] # => " 123456"

"%0*x" % [8,32767] # => "00007fff"
"%*.*f" % [10,3,1.0/3] # => " 0.333"

こういう機能がある。なんのことかというと、上記の3つの式は

"%7d" % 123456 # => " 123456"

"%08x" % 32767 # => "00007fff"
"%10.3f" % (1.0/3) # => " 0.333"

と、同じ。

%7d の 7 を引数から取ってくることができるようになる。C 言語の(もしかしたら、GNU拡張の)printf にあった機能で、ruby に取り込まれているんだと思う。

C 言語だと決定的に便利な機能だと思うんだけど、ruby だと%#{size}d って書けばいいから不要かも。

※ 私の記憶が確かなら、java の sprintf にはこの機能がない。