2012년 4월 28일 토요일

Print format

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)
}