title: How to use type assertion from interface reflection in golang?
body: <p>I am trying to use type assertion in golang. 
  with direct assertion there is no problem. </p>
  
  <pre><code>a, ok := i.(MyStruct)
  </code></pre>
  
  <p>but when I use reflection</p>
  
  <pre><code>b, ok := i.(reflect.TypeOf(i))
  </code></pre>
  
  <p>I got an error. What was a problem with that? and How to deal with it?</p>
  
  <p>Full Code:</p>
  
  <pre><code>package main
  
  import (
       "fmt"
       "reflect"
  )
  
  type MyStruct struct {
      field string
  }
  
  func main() {
      var i interface{} = MyStruct{field:"Thanks"}
  
      a, ok := i.(MyStruct)
      fmt.Println(a, ok)
  
      t := reflect.TypeOf(i)
      fmt.Println(t)
  
      b, ok := i.(t)
      fmt.Println(b, ok)
  }
  </code></pre>
  
  <p>Thank for your answers.</p>