Golang反映,如何获取地图值类型?

nav*_*ins 3 reflection go

对于mgolang中的地图,我们可以使用简单的键类型t.Key().

但我想知道如何获得地图值类型?

当地图为空时,我们甚至无法使用v.MapIndex,任何想法?

m := map[string]int{}
t := reflect.TypeOf(m)
v := reflect.ValueOf(m)
t.Key()
v.MapIndex()
Run Code Online (Sandbox Code Playgroud)

Not*_*fer 11

Elem() 地图类型将为您提供元素的类型:

var m map[string]int
fmt.Println(reflect.TypeOf(m).Elem())
// output: int
Run Code Online (Sandbox Code Playgroud)


Pio*_*ioz 5

这是获取地图键和地图元素类型的示例:

package main

import (
    "fmt"
    "reflect"
)

func main() {
    fmt.Println("Hello, playground")
    var m map[string]int
    fmt.Println(reflect.TypeOf(m).Key())
    fmt.Println(reflect.TypeOf(m).Elem())
}

Run Code Online (Sandbox Code Playgroud)

游乐场在这里

文档在这里https://golang.org/pkg/reflect/#Type