swritefについての驚愕の事実

PerlやらRubyやらC言語やらでいう*1sprintfみたいに、書式で文字列つくる機能はD言語にないのかなーと思って探してみて、ここにswritefのコードが公開されているのを発見。

http://www.digitalmars.com/d/archives/digitalmars/D/14260.html

char[] str = swritef("%d %f %s", 123, 0.123f, "aiu");
writefln(str);

出力

123 0.123000 aiu

すごい!

ということでずっとこれを愛用していました。

で、さっきそこの記事を読み直していていて気づいたのですが、

I think std.string.format() provides this functionality.


えっ?

char[] str = format("%d %f %s", 123, 0.123f, "aiu");
writefln(str);

123 0.123000 aiu

ほんとだ!すごい!!!便利!!!


まじめにマニュアル読みます

*1:起源はなんなんでしょう?