Print 에서 format
custom type 에대한 format 을 control 하려면,
String() string 함수를 만들면 된다.
%T 는 type of value 를 출력한다.
package main
import "fmt"
func main() {
var timeZone = map[string] int {
"UTC" : 1,
"EST" : 2,
"CST" : 3,
"MSt" : 4,
"PST" : 5,
}
t := &T{ 7, -2.35, "abc"}
var str string = "abc"
fmt.Printf( "%v \n", t)
fmt.Printf( "%+v \n", t)
fmt.Printf( "%#v \n", t)
fmt.Printf( "%#v \n", timeZone)
fmt.Printf( "%q \n", str)
fmt.Printf( "%#q \n", str)
fmt.Printf( "%x \n", str)
fmt.Printf( "% x \n", str)
fmt.Printf( "%T \n", str)
fmt.Printf( "%T \n", timeZone)
}
type T struct {
a int
b float64
c string
}
func (t *T) String() string {
return fmt.Sprintf( "custom control: %d/%g/%q", t.a, t.b, t.c)
}