title: golang type assertion using reflect.Typeof()
body: <p>I've tried to identify a struct with string value(name).
  <code>reflect.TypeOf</code> returns <code>Type</code>.</p>
  
  <p>But type assertion needs a <code>type</code>.</p>
  
  <p>How can I casting <code>Type</code> to <code>type</code>?</p>
  
  <p>Or any suggestion to handle it?</p>
  
  <p><a href="http://play.golang.org/p/3PJG3YxIyf" rel="noreferrer">http://play.golang.org/p/3PJG3YxIyf</a></p>
  
  <pre><code>package main
  
  import (
  "fmt"
  "reflect"
  )
  type Article struct {
      Id             int64       `json:"id"`
      Title          string      `json:"title",sql:"size:255"`
      Content        string      `json:"content"`
  }
  
  
  func IdentifyItemType(name string) interface{} {
      var item interface{}
      switch name {
      default:
          item = Article{}
      }
      return item
  }
  
  func main() {
  
      i := IdentifyItemType("name")
      item := i.(Article)
      fmt.Printf("Hello, item : %v\n", item)
      item2 := i.(reflect.TypeOf(i))  // reflect.TypeOf(i) is not a type
      fmt.Printf("Hello, item2 : %v\n", item2)
  
  }
  </code></pre>