Merge branch 'master' of github.com:chai2010/book-gopl-zh

This commit is contained in:
Xargin 2016-08-03 16:27:20 +08:00
commit 7372746639

View File

@ -163,12 +163,13 @@ type Memo struct {
// Get is concurrency-safe. // Get is concurrency-safe.
func (memo *Memo) Get(key string) (value interface{}, err error) { func (memo *Memo) Get(key string) (value interface{}, err error) {
res, ok := memo.cache[key] if!ok{ res, ok := memo.cache[key]
if !ok {
res.value, res.err = memo.f(key) res.value, res.err = memo.f(key)
memo.cache[key] = res memo.cache[key] = res
memo.mu.Lock() memo.mu.Lock()
res, ok := memo.cache[key] res, ok := memo.cache[key]
if !ok { if !ok {
res.value, res.err = memo.f(key) res.value, res.err = memo.f(key)
memo.cache[key] = res memo.cache[key] = res
} }