fmtパッケージにはfmt.Printfの出力を任意に変更できるインターフェースが定義されている。 各インターフェースを満たす独自型をフィールドに持つ構造体の出力がどうなるのか確認し、任意の型の出力を制御できるか確認してみた。 TL;DR fmt.Printf関数はPrint verbによって出力形式を変更できる https://golang.org/pkg/fmt/#hdr-Printing fmtパッケージのインターフェースを実装すると出力を制御できる fmt.Stringerインターフェース https://golang.org/pkg/fmt/#Stringer fmt.GoStringerインターフェース https://golang.org/pkg/fmt/#GoStringer fmt.Formatterインターフェース https://golang.org/pkg/fmt/