fmt.Printfの書式設定チュートリアルとチートシート

yourbasic。org/golang
単語形式を形成する文字タイル
  • 基本
    • Printf
    • Sprintf(印刷しない形式)
    • vetでfmtエラーを見つける
  • チートシート
    • デフォルトの形式とタイプ
    • 整数(インデント、ベース、符号)
    • 文字(引用符、Unicode)
    • ブール値(true/false)
    • ポインタ(hex)
    • Float(インデント、精度、科学表記)
    • 文字列またはバイトスライス(引用符、インデント、hex)
    • 特別な値

基本

Gofmtパッケージを使用すると、空白やゼロで埋められた数字や文字列を、異なるベースで、オプションの引用符で書式設定することができます。

書式設定するテキストを含むテンプレート文字列を送信します。fmtfunctionshowに末尾の引数を書式設定するように指示する注釈動詞をいくつか追加します。

Printf

この例では、fmt.Printfは標準出力にフォーマットして書き込みます:

fmt.Printf("Binary: %b\%b", 4, 5) // Prints `Binary: 1001`
  • テンプレート文字列は次のとおりです"Binary: %b\%b",
  • 注釈動詞%bは数値をバイナリで書式設定し、
  • は特別な値\は円記号です。

特殊なケースとして、引数を消費しない動詞%%はパーセント記号を生成します:

fmt.Printf("%d %%", 50) // Prints `50 %`

Sprintf(印刷せずに書式設定)

印刷せずに文字列を書式設定するにはfmt.Sprintfを使用します:

s := fmt.Sprintf("Binary: %b\%b", 4, 5) // s == `Binary: 1001`

vetでfmtエラーを見つける

この間違ったコード行をコンパイルして実行しようとすると

fmt.Printf("Binary: %b\%b", 4) // An argument to Printf is missing.

プログラムがコンパイルされ、

Binary: 100\%!b(MISSING)

を印刷してこのタイプのエラーを早期にキャッチするには、vetコマンドを使用することができます–引数がフォーマット文字列と整列しないコールを見つけることができます。

$ go vet example.goexample.go:8: missing argument for Printf("%b"): format reads arg 2, have only 1 args

チートシート

デフォルトのフォーマットとタイプ

  • 値: int64{0, 1}
フォーマット 動詞 説明
%v デフォルトの形式
int64{0, 1} %#v Go-構文形式
int64 %T 値の型

整数(インデント,ベース,符号)

  • 値: 15
フォーマット 動詞 説明
15 %d ベース10
+15 %+d 常にサインを表示
␣␣15 %4d スペース付きパッド(幅4、右揃え)
15␣␣ %-4d スペース付きパッド(幅4、左揃え)
0015 %04d パッド(幅)4)
1111 %b ベース2
17 %o ベース8
f %x 基数16、小文字
F %X 基数16、大文字
0xf %#x 基数は16で、先頭に0xが付いています

文字(引用符で囲まれた、Unicode)

  • 値: 65(Unicode文字A)
フォーマット 動詞 説明
A %c キャラクター
‘A’ %q 引用文字
U+0041 %U ユニコード
U+0041’A’ %#U 文字を含むUnicode

Boolean(true/false)

booleanをtrueまたはfalseとしてフォーマットするには、%tを使用します。

ポインタ(16進数)

%pを使用して、先頭に0xを付けて16進数表記でポインタをフォーマットします。

Float(インデント、精度、科学表記法)

  • 値: 123.456
フォーマット 動詞 説明
1.234560e+02 %e 科学記法
123.456000 %f 小数点、指数なし
123.46 %.2f デフォルトの幅、精度2
␣␣123.46 %8.2f 幅8 2
123.456 %g 必要に応じて指数、必要な数字のみ

文字列またはバイトスライス(引用符、インデント、hex)

  • 値: "café"
フォーマット 動詞 説明
カフェ %s 平ひも
␣␣カフェ %6s 幅6、右揃え
カフェ␣␣ %-6s 幅6、左揃え
“カフェ” %q 引用符付き文字列
636166 %x バイト値の16進ダンプ
63 61 66 c3a9 % x ヘックス スペースを使用したダンプ

特別な値

説明
\a u+0007警報か鐘
\b u+0008バックスペース
\ U+005c円記号
\t u+0009水平タブ
\n u+000a改行または改行
\f U+000Cフォームフィード
\r U+000dキャリッジ 戻る
\v u+000b垂直タブ

任意の値は、バックスラッシュエスケープでエンコードすることができ、任意の""文字列リテラルで使用することができます。

:

  • \x 正確に二つの十六進数字が続きます,
  • \ 正確に三つの八進数字が続きます,
  • \u 正確に四つの十六進数字が続きます,
  • \U 正確に八十六進数が続きます。

エスケープ\u\UはUnicodeコードポイントを表します。

fmt.Println("\caf\u00e9") // Prints \café

続きを読む

40+ 実用的なひものヒント

コメントを残す

メールアドレスが公開されることはありません。