title: How to get values of a map interface with reflect in Go?
body: <p>I'm struggling to get the value of an interface map in Go.</p>
  
  <pre><code>val := reflect.ValueOf(Schema)
  fmt.Println("VALUE = ", val)
  fmt.Println("KIND = ", val.Kind())
  if val.Kind() == reflect.Map {
      fmt.Println("len = ", val.Len())
      for key, element := range val.MapKeys() {
          fmt.Println(key, element) // how to get the value?
      }
  }
  </code></pre>
  
  <p>This outputs:</p>
  
  <pre><code>VALUE =  map[testString:foobar testInt:1 testBoolean:true testNumber:1 testDateTime:2017-10-06 08:15:30 +0100 +0100]
  KIND =  map
  len =  5
  0 testString
  1 testInt
  2 testBoolean
  3 testNumber
  4 testDateTime
  </code></pre>
  
  <p><strong>My question</strong>:<br>
  How can I get the type and value of the map items?</p>