title: golang - Elem Vs Indirect in the reflect package
body: <p>From the docs</p>
  
  <pre><code>func (v Value) Elem() Value
  </code></pre>
  
  <p><em>Elem returns the value that the interface v contains or that the pointer v points to. It panics if v's Kind is not Interface or Ptr. It returns the zero Value if v is nil.</em></p>
  
  <pre><code>func Indirect(v Value) Value
  </code></pre>
  
  <p><em>Indirect returns the value that v points to. If v is a nil pointer, Indirect returns a zero Value. If v is not a pointer, Indirect returns v.</em></p>
  
  <p>So can I safely assume the following?</p>
  
  <pre><code>reflect.Indirect(reflect.ValueOf(someX)) === reflect.ValueOf(someX).Elem().
  </code></pre>
  
  <p>Is Indirect method just a convenience method for the right hand side of the above?</p>