std.fmt

書式指定 f"{v:...}" で書けないものを補う。桁揃え・ゼロ埋め・桁区切りは書式指定で書けるので、このモジュールは要らない。

import std.fmt;
print(fmt.bytes(1536));   // 1.5 KB
fmt.apply fmt.bytes fmt.duration fmt.truncate fmt.table
fmt.apply(v: int, spec: string) → string

書式を実行時に決めて当てる。記法は f"{v:...}" と同じ。

オーバーロード: fmt.apply(v: float, spec: string) -> string fmt.apply(v: string, spec: string) -> string

vint当てる値
specstring書式("05" ".2f" "x" "," など)。おかしければ、そのまま文字列にする
print(fmt.apply(7, "03"));        // 007
print(fmt.apply(3.14159, ".2f")); // 3.14
print(fmt.apply("さめ", ">6"));   //   さめ(表示幅 6 に右寄せ)
fmt.bytes(v: int) → string

データ量を読みやすい形にする。

print(fmt.bytes(1536));   // 1.5 KB
fmt.duration(d: Duration) → string

期間を読みやすい形にする。

import std.time;
print(fmt.duration(time.seconds(3725.0)));   // 1時間2分5秒
fmt.truncate(s: string, width: int) → string

表示幅で切って … を付ける。全角は 2 と数える。

sstring元の文字列
widthint切ったあとの表示幅
print(fmt.truncate("とても長い名前です", 8));   // とても長…
fmt.table(rows: list<list<string>>) → string

列の幅を揃えて表にする。1行目を見出しにはしない。

print(fmt.table([
  ["名前", "大きさ"],
  ["さめ", "400"],
]));