文字列関数
format(formatstring, e1, e2, ...)
最初の引数formatstring(文字列でなければなりません)で指定されたフォーマットに従って可変長引数の文字列を整形して返します。 formatstringは標準C関数のprintfファミリと同じ規則に従います。 唯一の違いはオプション/修飾子*、l、L、n、p、hはサポートされておらず、追加オプションqがあることです。
qオプションはFVXインタプリタによって安全に読み戻されるのに適した形式で文字列を整形します。文字列は二重引用符で囲み、文字列中の全ての二重引用符、改行、バックスラッシュは正しくエスケープされます。例えば、
format("%q", 'a string with "quotes" and \n new line')
は次のような文字列に整形されます。
"a string with \"quotes\" and \
new line"
フォーマットは次の未使用の引数ではなく、引数リストのn番目の引数に適用することもできます。 この場合、変換文字%はシーケンス%t$で置き換えられます。ここで、tは[1,9]の範囲の10進数で、引数リスト内の引数の位置を示します。例えば、
format("%2$d -> %1$03d", 1, 34)
は次のような文字列に整形されます。
"34 -> 001"
最初の引数1はフォーマット文字列%1$03dにより整形されます。書式中の3により文字列長は3に強制され、0により結果の長さが3未満の場合に文字列に0が埋め込まれます。dは符号付き10進表記の整数であることを示します。2番目の引数34はフォーマット文字列%2$dにより整形されます。書式中の2は整形する引数の番号を示します。同一の引数が複数の書式の影響を受けることもあります。例えば、
format("%2$d -> %1$03d -> %2$d", 1, 34)
は次のような文字列に整形されます。
"34 -> 001 -> 34"
|