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