type M map[string]interface{}
var item M
fmt.Println(reflect.TypeOf(item))
返回main.M
。
如何找到项目的基础类型为map[string]interface{}
。
答案 0 :(得分:3)
是的,您可以获取该类型的精确结构,如果这是您对“根类型”的意思:
var item M
t := reflect.TypeOf(item)
fmt.Println(t.Kind()) // map
fmt.Println(t.Key()) // string
fmt.Println(t.Elem()) // interface {}
从那里你可以随意显示它。
答案 1 :(得分:1)
我认为没有开箱即用的方式,但您可以手工构建基础类型:
type M map[string]interface{}
...
var m M
t := reflect.TypeOf(m)
if t.Kind() == reflect.Map {
mapT := reflect.MapOf(t.Key(), t.Elem())
fmt.Println(mapT)
}