Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

formatでアレ気文字列を綺麗に生成する

Go言語ではfmtなんて素敵なのが標準で推奨されてますね。

RubyにもKernel.#formatがあります。

format('%s : %s', Time.now, 1 + 20)
#=> "2014-07-02 23:19:45 +0900 : 21"

C 言語の sprintf(3)と同じフォーマットを使えるので、以下のようにゼロ揃えなんかもできます。*1

format("%#06x", 12)
#=> "0x000c"

返ってくるのはString型です。

format('%s : %s', Time.now, 1 + 20).class
=> String

短い奴ならば、今まで通り#{}で捩じ込む形式、
変数がゴチャゴチャしてて読み辛い場合や桁揃えをしたいはformat
といった使い分けが良いのかも知れません。

*1:これを書いていてはじめて知ったのですが、0xも埋め文字に入るのですね...