code: func (c *Cache) Remove(key interface{}) (val interface{}, has bool) {
  	c.lock.Lock()
  	defer c.lock.Unlock()
  
  	if e, ok := c.cache[key]; ok {
  		val, has = e.Value.(*cacheEntry).v, true
  		c.evictEntryLocked(e)
  	}
  	return
  }
docs: // Remove removes an entry from the cache. If the key is present, its current
  // value will be returned; otherwise, nil will be returned.
  //
  // Remove uses the cache read/write lock.