Maison > développement back-end > Golang > le corps du texte

Comment récupérer en toute sécurité les valeurs d'une `map[string]interface{}` dans Go ?

Barbara Streisand
Libérer: 2024-11-24 07:12:10
original
504 Les gens l'ont consulté

How to Safely Retrieve Values from a `map[string]interface{}` in Go?

Récupération de valeurs d'une carte dans Go

Lorsque vous travaillez avec une structure de données map[string]interface {} dans Go, récupération de valeurs spécifiques peut être un défi. Pour accéder avec succès aux données d'une carte, il est essentiel de comprendre le format de données sous-jacent et d'appliquer la bonne approche.

Pour résoudre le problème que vous avez rencontré, vous pouvez utiliser des assertions de type pour convertir les valeurs dans les types de données souhaités. . Les assertions de type vous permettent d'extraire des types spécifiques d'une interface. La syntaxe générale est :

mvVar := myMap[key].(VariableType)
Copier après la connexion

Dans votre cas spécifique :

id  := res["strID"].(string)
Copier après la connexion

Cependant, gardez à l'esprit que les assertions de type peuvent provoquer des erreurs de panique si le type est incorrect ou si la clé ne le fait pas. ça n’existe pas. Pour éviter les paniques, il est recommandé d'utiliser l'approche sécurisée suivante :

var id string
var ok bool
if x, found := res["strID"]; found {
     if id, ok = x.(string); !ok {
        // Handle errors - this means this wasn't a string
     }
} else {
   // Handle errors - the map didn't contain this key
}
Copier après la connexion

En implémentant des assertions de type ou l'approche sécurisée décrite ci-dessus, vous pouvez extraire efficacement les valeurs d'une map[string]interface {} dans Go , vous assurant d'obtenir les données dont vous avez besoin sans risque de panique.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal