type M map[string]interface{}
var item M
fmt.Println(reflect.TypeOf(item))
renvoie main.M
.trouver le type sous-jacent de type personnalisé dans golang
Comment trouver le type d'élément sous-jacent en tant que map[string]interface{}
.
type M map[string]interface{}
var item M
fmt.Println(reflect.TypeOf(item))
renvoie main.M
.trouver le type sous-jacent de type personnalisé dans golang
Comment trouver le type d'élément sous-jacent en tant que map[string]interface{}
.
Oui, vous pouvez chercher la structure précise du type, si c'est ce que vous entendez par « type racine »:
var item M
t := reflect.TypeOf(item)
fmt.Println(t.Kind()) // map
fmt.Println(t.Key()) // string
fmt.Println(t.Elem()) // interface {}
De là, vous êtes libre pour l'afficher comme vous vouloir.
Je ne pense pas qu'il y ait un moyen hors-the-box, mais vous pouvez construire le type sous-jacent à la main:
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)
}
Quel est le type de racine? Je n'ai jamais entendu un tel terme. – lofcek
Copie associée/possible de [Identifier les types non-intégrés utilisant reflect] (https://stackoverflow.com/questions/36310538/identify-non-builtin-types-using-reflect/37292523#37292523). – icza