Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在golang中查找自定义类型的基础类型_Go_Typeof - Fatal编程技术网

在golang中查找自定义类型的基础类型

在golang中查找自定义类型的基础类型,go,typeof,Go,Typeof,返回main.M 如何找到项的基本类型,如map[string]interface{}是的,如果您使用“root type”的意思是这样的,您可以获取类型的精确结构: 从那里,您可以随意显示它。是的,您可以获取类型的精确结构,如果这就是“根类型”的含义: 从那里,您可以随意显示它。我认为没有现成的方法,但您可以手动构造基础类型: var item M t := reflect.TypeOf(item) fmt.Println(t.Kind()) // map fmt.Println(t.Ke

返回
main.M


如何找到项的基本类型,如
map[string]interface{}

是的,如果您使用“root type”的意思是这样的,您可以获取类型的精确结构:


从那里,您可以随意显示它。

是的,您可以获取类型的精确结构,如果这就是“根类型”的含义:


从那里,您可以随意显示它。

我认为没有现成的方法,但您可以手动构造基础类型:

var item M
t := reflect.TypeOf(item)
fmt.Println(t.Kind()) // map
fmt.Println(t.Key())  // string
fmt.Println(t.Elem()) // interface {}

我认为没有现成的方法,但您可以手动构造底层类型:

var item M
t := reflect.TypeOf(item)
fmt.Println(t.Kind()) // map
fmt.Println(t.Key())  // string
fmt.Println(t.Elem()) // interface {}

根类型是什么?我从未听说过这样的术语。相关/可能重复。根类型是什么?我从未听说过这样的术语。相关的/可能重复的。
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)
}