Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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も埋め文字に入るのですね...