英語版
このページの英語版を見る

std.format.spec

これは std.format.
という構造体を中心に構成されている。 FormatSpecという構造体を中心に構成されている。 と呼ばれる構造体を中心に構成されている。 と呼ばれる構造体を中心に構成されている。さらにこのモジュールには、以下の関数が含まれている。 singleSpec関数を含んでいる。
Authors:
struct FormatSpec(Char) if (is(Unqual!Char == Char));
フォーマット文字列の一般的なハンドラ。
このハンドラは、関数 writeUpToNextSpec, 関数が中心である。 が見つかるまで解析する。呼び出し後、このハンドラは を提供する。
Parameters:
Char フォーマット文字列の文字型
Examples:
import std.array : appender;

auto a = appender!(string)();
auto fmt = "Number: %6.4e\nString: %s";
auto f = FormatSpec!char(fmt);

writeln(f.writeUpToNextSpec(a)); // true

writeln(a.data); // "Number: "
writeln(f.trailing); // "\nString: %s"
writeln(f.spec); // 'e'
writeln(f.width); // 6
writeln(f.precision); // 4

writeln(f.writeUpToNextSpec(a)); // true

writeln(a.data); // "Number: \nString: "
writeln(f.trailing); // ""
writeln(f.spec); // 's'

writeln(f.writeUpToNextSpec(a)); // false

writeln(a.data); // "Number: \nString: "
int width;
最小幅。
デフォルト:0
int precision;
精度。その意味はフォーマット文字に依存する。
詳 し く は書式文字列を参照。 デ フ ォ ル ト :UNSPECIFIED
int separators;
区切り文字間の要素数。
デ フ ォ ル ト :UNSPECIFIED
bool dynamicSeparatorChar;
区切 り キ ャ ラ ク タ は実行時に与え る。
デフォルト:false。
int separatorCharPos();

void separatorCharPos(int value);
区切 り キ ャ ラ ク タ が実行時に与え ら れ る と き はDYNAMIC に設定する。
デ フ ォ ル ト :UNSPECIFIED
警告: separatorCharPos は非推奨である。2.107.0で削除される。 代わりにdynamicSeparatorChar
dchar separatorChar;
区切り文字として使用する文字。
デフォルト:','
enum int DYNAMIC;
width,precision およびseparators のための特別な値。
これは、これらの値が実行時に変 数引数を通して渡されることを示すフラグである。 可変長引数" で渡されることを示す。
enum int UNSPECIFIED;
precisionseparators には特別な値を指定する。
これらの値が指定されていないことを示すフラグである。
char spec;
フォーマット文字。
デフォルト:'s'
ubyte indexStart;
位置パラメータの引数のインデックス。
1 から始まる。使わない と きは0 に設定する。デ フ ォ ル ト :0
ubyte indexEnd;
位置パラメーター範囲の最後の引数のインデックス。
カウントは1 で始まる。使われなければ0 に設定する。デ フ ォ ル ト :0
bool flDash;
書式指定子に'-' が含まれていた。
bool flZero;
書式指定子に'0' が含まれていた。
bool flSpace;
書式指定子にスペースが含まれていた。
bool flPlus;
書式指定子には'+' が含まれていた。
bool flHash;
書式指定子には'#' が含まれていた。
bool flEqual;
書式指定子には'=' が含まれていた。
bool flSeparator;
書式指定子には',' が含まれていた。
const(Char)[] nested;
入れ子になった書式指定子の内側の書式文字列。
const(Char)[] sep;
入れ子になった書式指定子のセパレーター。
null つまり、セパレーターはない。ただし、 は含まない、 は長さゼロのセパレータを意味する。empty null
const(Char)[] trailing;
フォーマット文字列の、まだ解析されていない部分を含む。
enum immutable(Char)[] seqBefore;
各範囲または範囲のような構造の前に、"[" というシーケンスが挿入される。
enum immutable(Char)[] seqAfter;
シーケンス"]" 各範囲または範囲類似構造の後に挿入される。
enum immutable(Char)[] keySeparator;
":" 、連想配列の要素キーと要素値の間に挿入される。 連想配列の要素キーと要素値の間に挿入されたシーケンス。
enum immutable(Char)[] seqSeparator;
シーケンス", " 、範囲、範囲のような構造、または連想配列の要素の間に挿入される。 構造体または連想配列の要素の間に挿入されるシーケンス。
pure @safe this(in Char[] fmt);
新しいFormatSpec を作成する。
文字列は遅延評価される。つまり、何もしない、 が呼び出されるまで何も行われない。 writeUpToNextSpecが呼び出されるまで、何も行われない。
Parameters:
scope bool writeUpToNextSpec(OutputRange)(ref OutputRange writer);
次の書式指定子が見つかるまで、書式文字列を出力範囲に書き込み、その書式指定子を解析する。 次の書式指定子が見つかるまで書式文字列を出力範囲に書き込み、その書式指定子を解析する。
書式指定子についての詳細は、書式文字列の説明を参照のこと。 の説明を参照のこと。
Parameters:
OutputRange writer 出力範囲、 フォーマット文字列が書き込まれる
OutputRange 出力範囲の"型
Returns:
書式指定子が見つかった場合は真、書式文字列の末尾に達した場合は偽を返す。 に達した場合は偽となる。
const pure @safe string toString();
文字列表現を提供する。
Returns:
文字列表現を提供する。
const void toString(OutputRange)(ref OutputRange writer)
if (isOutputRange!(OutputRange, char));
文字列表現を出力範囲に書き込む。
Parameters:
OutputRange writer 出力範囲に文字列表現を書き込む、 表現が書き込まれる
OutputRange 出力範囲の型
FormatSpec!Char singleSpec(Char)(Char[] fmt);
単一のフォーマット指定子に対してFormatSpec を返すヘルパー関数。
Parameters:
Char[] fmt フォーマット文字列 単一の書式指定子を含む
Char の文字型。 fmt
Returns:
A FormatSpecの文字型で、書式指定子は解析される。
Throws:
書式文字列に書式指定子が含まれていない場合、または 書式文字列が書式指定子を含まないか、1つ以上の書式指定子 例外が発生する。
Examples:
import std.array : appender;
import std.format.write : formatValue;

auto spec = singleSpec("%10.3e");
auto writer = appender!string();
writer.formatValue(42.0, spec);

writeln(writer.data); // " 4.200e+01"