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