Golang反映,如何获取映射值类型



对于golang中的映射m,我们可以使用t.Key()简单地获得密钥类型。

但我想知道如何获取映射值类型?

当地图是空的,我们甚至不能使用v.MapIndex,知道吗?

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

映射类型的Elem()将为您提供元素的类型:

var m map[string]int
fmt.Println(reflect.TypeOf(m).Elem())
// output: int

这里有一个获取地图键和地图元素类型的示例:

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())
}

这里的游乐场

医生来了https://golang.org/pkg/reflect/#Type

相关内容

  • 没有找到相关文章

最新更新