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