概要
以下、自分用のメモです。忘れないうちにメモメモ。。。
大したことない話題なのですが、知ってるとちょっと便利です。
Goではバイトスライスをよく利用すると思います。
んで、よくその内容を出力することがあると思います。
その際に、各バイト毎にスペースを空けて表示した方が見やすいときが多いです。
fmt.Printfの書式に % x
と指定すると1バイトずつスペースを空けて出力してくれます。
サンプル
package formatting import ( "fmt" "github.com/devlights/gomy/output" ) // Numbers は、数値のフォーマットについてのサンプルです. // // # REFERENCES // - https://pkg.go.dev/fmt func Numbers() error { // '+' を付与すると常に符号が表示される { x := 123 fmt.Printf("%+d\n", x) fmt.Printf("%+d\n", x*-1) } output.StdoutHr() // 指定した値分だけ右側をスペースで埋める { x := 123 fmt.Printf("'%-10d'\n", x) fmt.Printf("'%-10d'\n", x*-1) } output.StdoutHr() // 別の進数で出力 { x := 0xff fmt.Printf("%d\n", x) fmt.Printf("%#b\n", x) fmt.Printf("%#x\n", x) fmt.Printf("%#o\n", x) } output.StdoutHr() // 要素毎にスペースを開けて出力 { fmt.Printf("% x\n", [...]byte{253, 254, 255}) fmt.Printf("% x\n", []byte{250, 251, 252}) fmt.Printf("% x\n", "hello") } output.StdoutHr() // 0埋めして出力 { fmt.Printf("'%08d'\n", 0xf0) fmt.Printf("'%08x'\n", 0xff) fmt.Printf("'%08b'\n", 0x0f) } return nil }
実行すると以下のようになります。
gitpod /workspace/try-golang (master) $ task task: [run] go run . -onetime ENTER EXAMPLE NAME: formatting_numbers [Name] "formatting_numbers" +123 -123 -------------------------------------------------- '123 ' '-123 ' -------------------------------------------------- 255 0b11111111 0xff 0377 -------------------------------------------------- fd fe ff fa fb fc 68 65 6c 6c 6f -------------------------------------------------- '00000240' '000000ff' '00001111' [Elapsed] 86.93µs
参考情報
Goのおすすめ書籍
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。