yourbasic。org/golang
- 基本
- Printf
- Sprintf(印刷しない形式)
- vetでfmtエラーを見つける
- チートシート
- デフォルトの形式とタイプ
- 整数(インデント、ベース、符号)
- 文字(引用符、Unicode)
- ブール値(true/false)
- ポインタ(hex)
- Float(インデント、精度、科学表記)
- 文字列またはバイトスライス(引用符、インデント、hex)
- 特別な値
基本
Gofmt
パッケージを使用すると、空白やゼロで埋められた数字や文字列を、異なるベースで、オプションの引用符で書式設定することができます。
書式設定するテキストを含むテンプレート文字列を送信します。fmt
functionshowに末尾の引数を書式設定するように指示する注釈動詞をいくつか追加します。
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+ 実用的なひものヒント