对于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