書式化した文字列を作成する

xtalは0.9.3現在、文字列の機能が非常に弱いです。
主にゲーム用のスクリプトだからということで後回しにしていますが、これからなんとかしていきたいところの一つです。

そんなxtalで、既に実装されている便利な文字列の機能として、書式化した文字列を作成する機能があります。要はsprintfです。

Rubyの%記法のように、%f!文字列!という風に記述します。

format: %f!This %s a %s.!;

// !の部分にはasciiの記号ならほとんどなんでも代用できます。
// (や[など、括弧の場合は対応する)や]で閉じます。

//format: %f"This %s a %s."; 上と同じ
//format: %f(This %s a %s.); これも

formatは二つの引数を受け取り、書式化した文字列を返す関数となります。

format("is", "pen").p; // This is a pen. 

Pythonのように、%(name)sという風に記述することで、名前付きにすることも出来ます。

format: %f[x=%(x)d, y=%(y)d];
format(y: 10, x: 20).p; // x=20, y=10