2012년 4월 28일 토요일

Print

Print 에서 format

%d, %x, %v, %+v, %#v





package main
import "fmt"


func main() {    

var x uint64 = 1<<64  - 1
fmt.Printf("%d %x; %d %x\n", x, x, int64(x), int64(x))


var timeZone = map[string] int {
"UTC" : 1,
"EST" : 2,
"CST" : 3,
"MSt" : 4,
"PST" : 5,
}


type T struct {
a int
b float64
c string
}

t := &T{ 7, -2.35, "abc"}

fmt.Printf( "%v   \n", t)
fmt.Printf( "%+v \n", t)
fmt.Printf( "%#v \n", t)
fmt.Printf( "%#v \n", timeZone)

}




print

아.. Print
함수이름이 C 에서 보았던것과 비슷하다.




package main
import "fmt"
import "os"


func main() {    

fmt.Printf( "Hello %d\n", 23)
fmt.Fprint( os.Stdout, "Hello ", 23, "\n")
fmt.Println( "Hello", 23)

var str string = fmt.Sprint("Hello ", 23)
fmt.Println( str)

}





map


map 이 built-in type 이다.

map 을 한번 쳐다보자.





package main
import "fmt"


func main() {    

var timeZone = map[string] int {
"UTC" : 1,
"EST" : 2,
"CST" : 3,
"MSt" : 4,
"PST" : 5,
}

fmt.Println( timeZone)
fmt.Println( timeZone["EST"])

var num int
var ok bool
var tz string
tz = "CST"

num, ok = timeZone[tz]
fmt.Println( num, ok)

// blank identifier
_, ok = timeZone[tz]


tz = "없어요"


// "comma ok" idiom
if num, ok = timeZone[tz]; ok {
fmt.Println( num) 
} else 
{
fmt.Println( "알수없는 time zone:", tz)
}


delete( timeZone, "PST")
fmt.Println( timeZone)

}