Maison  >  Article  >  développement back-end  >  Comment dois-je utiliser le type mapinterface {} dans Golang

Comment dois-je utiliser le type mapinterface {} dans Golang

王林
王林avant
2024-02-05 23:06:121105parcourir

我应该如何在golang中使用类型mapinterface {}

Contenu de la question

J'essaie de récupérer des données de l'API. Quand je reçois des données de l'API :

result, _ := s.getcases() // get cases via api
fmt.println(reflect.typeof(result.records[0]["cases"]))

Il montre le type de résultat. records[0]["cases"] est map[string]interface {}

Mais, évidemment, je ne peux pas l'utiliser directement comme carte. De :

fmt.println(reflect.typeof(result.records[0]["cases"]["id"]))

Cela entraînera une erreur du compilateur :

invalid operation: cannot index result.Records[0]["Cases"] (map index
expression of type interface{})

Puis-je savoir comment utiliser ce type en golang ?


Bonne réponse


La valeur est de type interface{},并且根据反射的输出,该接口中有一个 map[string]interface{} valeur. Par conséquent, vous devez utiliser des assertions de type pour obtenir la valeur réelle stockée dans l'interface :

fmt.Println(reflect.TypeOf(result.Records[0]["Cases"].(map[string]interface{})["Id"]))

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer