code: func (r *Reader) Get(key []byte, ro *opt.ReadOptions) (value []byte, err error) {
  	r.mu.RLock()
  	defer r.mu.RUnlock()
  
  	if r.err != nil {
  		err = r.err
  		return
  	}
  
  	rkey, value, err := r.find(key, false, ro, false)
  	if err == nil && r.cmp.Compare(rkey, key) != 0 {
  		value = nil
  		err = ErrNotFound
  	}
  	return
  }
docs: // Get gets the value for the given key. It returns errors.ErrNotFound
  // if the table does not contain the key.
  //
  // The caller may modify the contents of the returned slice as it is its
  // own copy.
  // It is safe to modify the contents of the argument after Find returns.