code: func (p *Pool) Get() interface{} {
  	if len(p.store) == 0 {
  		if p.New != nil {
  			return p.New()
  		}
  		return nil
  	}
  	x := p.store[len(p.store)-1]
  	p.store = p.store[:len(p.store)-1]
  	return x
  }
docs: // Get selects an arbitrary item from the Pool, removes it from the
  // Pool, and returns it to the caller.
  // Get may choose to ignore the pool and treat it as empty.
  // Callers should not assume any relation between values passed to Put and
  // the values returned by Get.
  //
  // If Get would otherwise return nil and p.New is non-nil, Get returns
  // the result of calling p.New.