| @ -0,0 +1,20 @@ | |||
| package main | |||
| import "fmt" | |||
| func main() { | |||
| a, b := 5, 10 | |||
| swap(&a, &b) | |||
| fmt.Println(a == 10, b == 5) | |||
| } | |||
| func swap(a *int, b *int) { | |||
| // temp := a | |||
| // *a, *b = *b, *temp | |||
| *a, *b = *b, *a | |||
| } | |||
| @ -0,0 +1,30 @@ | |||
| package main | |||
| import ( | |||
| "fmt" | |||
| "time" | |||
| ) | |||
| func main() { | |||
| var count1 *int | |||
| count2 := new(int) | |||
| countTemp := 5 | |||
| count3 := &countTemp | |||
| t := &time.Time{} | |||
| if count1 != nil { | |||
| fmt.Printf("count1: %#v\n", *count1) | |||
| } | |||
| if count2 != nil { | |||
| fmt.Printf("count2: %#v\n", *count2) | |||
| } | |||
| if count3 != nil { | |||
| fmt.Printf("count3: %#v\n", *count3) | |||
| } | |||
| if t != nil { | |||
| fmt.Printf("time: %#v\n", *t) | |||
| fmt.Printf("time: %#v\n", t.String()) | |||
| } | |||
| } | |||
| @ -0,0 +1,28 @@ | |||
| package main | |||
| import "fmt" | |||
| func add5Value(count int) { | |||
| count += 5 | |||
| fmt.Println("add5Value :", count) | |||
| } | |||
| func add5Point(count *int) { | |||
| *count += 5 | |||
| fmt.Println("add5Point :", *count) | |||
| } | |||
| func main() { | |||
| var count int | |||
| add5Value(count) | |||
| fmt.Println("add5Value post:", count) | |||
| add5Point(&count) | |||
| fmt.Println("add5Point post:", count) | |||
| } | |||
| @ -0,0 +1,51 @@ | |||
| package main | |||
| import "fmt" | |||
| const GlobalLimit = 100 | |||
| const MaxCacheSize = 10 * GlobalLimit | |||
| const ( | |||
| CacheKeyBook = "book_" | |||
| CacheKeyCD = "cd_" | |||
| ) | |||
| var cache map[string]string | |||
| func cacheGet(key string) string { | |||
| return cache[key] | |||
| } | |||
| func cacheSet(key, val string) { | |||
| if len(cache)+1 >= MaxCacheSize { | |||
| return | |||
| } | |||
| cache[key] = val | |||
| } | |||
| func getBook(isbn string) string { | |||
| return cacheGet(CacheKeyBook + isbn) | |||
| } | |||
| func setBook(isbn, name string) { | |||
| cacheSet(CacheKeyBook+isbn, name) | |||
| } | |||
| func getCD(sku string) string { | |||
| return cacheGet(CacheKeyCD + sku) | |||
| } | |||
| func setCD(sku, title string) { | |||
| cacheSet(CacheKeyCD+sku, title) | |||
| } | |||
| func main() { | |||
| cache = make(map[string]string) | |||
| setBook("1234-5678", "Get ready to Go") | |||
| setCD("1234-5678", "Get ready to Go audio book") | |||
| fmt.Println("Book:", getBook("1234-5678")) | |||
| fmt.Println("CD :", getCD("1234-5678")) | |||
| } | |||