title: Reflect slice underlying type
body: <p>I have the following code:</p>
  
  <pre><code>v: = &amp;[]interface{}{client, &amp;client.Id}
  valType := reflect.TypeOf(v)
  val := reflect.ValueOf(v)
  if val.Kind() == reflect.Ptr {
          elm := val.Elem()
          if elm.Kind() == reflect.Slice {
              fmt.Println("Type -&gt;&gt;", elm, " - ", valType.Elem())
          }
      }
  </code></pre>
  
  <p>The output is the following one: <code>Type -&gt;&gt; &lt;[]interface {} Value&gt;  -  []interface {}</code>
  How can I get the underlying type of it? I would like to check if array type is of interface{} kind.</p>
  
  <p><strong>EDIT</strong>
  One way to achieve it, an ugly way IMHO is this one: </p>
  
  <pre><code>var t []interface{}
  fmt.Println("Type -&gt;&gt;", elm, " - ", valType.Elem(), " --- ", reflect.TypeOf(t) == valType.Elem())
  </code></pre>
  
  <p>Can it be done in a different way?</p>