golangのfmt系のformatの機能のメモ
まじめに調べるなら以下を見たほうが良い。
reflection使った便利な出力
%T
値の方を表示%v
値を良い感じに表示%+v
+フラグ付きで冗長出力表示。%#v
値を型名やフィールド名も含めて出力
利用例
type Person struct { Name string Age int } func main(){ person := Person{Name: "foo", Age: 20} fmt.Printf("%%T %T\n", person) fmt.Printf("%%v %v\n", person) fmt.Printf("%%v %#v\n", person) } /* %T main.Person %v {foo 20} %v main.Person{Name:"foo", Age:20} */
同一の値を添え字で参照
1-originなことに注意
fmt.Printf("type=%[1]T, value=%[1]v, verbose=%#[1]v\n", person) /* type=main.Person, value={foo 20}, verbose=main.Person{Name:"foo", Age:20} */
quoteされた文字列の表示
%q
が用意されている。
fmt.Printf("string = %q¥n", "foo") /* string = "foo" */
0-padding
0-paddingだけできる?
fmt.Printf("long=%06d, short=%04[1]d\n", 100) /* long=000100, short=0100 */