关于过期的问题
作者: xiaoliwang创建于 2023年3月6日更新于 2023年3月6日
func (c *cache) Get(k string) (interface{}, bool) {
c.mu.RLock()
// "内联" get 和 Expired
item, found := c.items[k]
if !found {
c.mu.RUnlock()
return nil, false
}
if item.Expiration > 0 {
if time.Now().UnixNano() > item.Expiration {
c.mu.RUnlock()
return nil, false
}
}
c.mu.RUnlock()
return item.Object, true
}
这里为什么使用 `item.Expiration > 0 && time.Now().UnixNano() > item.Expiration`,而不是使用 `item.Expired()`内容来源: patrickmn/go-cache