Maison > développement back-end > Golang > Comment puis-je définir plusieurs balises de nom pour les champs dans une structure Go ?

Comment puis-je définir plusieurs balises de nom pour les champs dans une structure Go ?

Linda Hamilton
Libérer: 2024-12-04 14:47:11
original
201 Les gens l'ont consulté

How Can I Define Multiple Name Tags for Fields in a Go Struct?

Plusieurs balises de nom dans une structure Go

Lorsque vous travaillez avec des structures dans Go, il peut être utile de définir plusieurs balises de nom pour représenter le même champ dans différents contextes. Ceci est particulièrement utile lorsqu'il s'agit de bibliothèques ou d'API tierces qui attendent des données dans un format spécifique.

Problème : définition de plusieurs balises de nom dans une structure

Considérons l'exemple suivant :

type Page struct {
    PageId string                 `bson:"pageId"`
    Meta   map[string]interface{} `bson:"meta"`
}
Copier après la connexion

Cette structure est conçue pour représenter un document de base de données Mongo, avec le champ PageId balisé pour MongoDB (bson) et le champ Meta également marqué pour MongoDB. Cependant, lors de l'encodage de cette structure en JSON, le champ PageId est rendu sous la forme PageId (en majuscules) au lieu de pageId.

Solution : Utiliser l'espace comme séparateur de balises

Pour définir plusieurs balises de nom pour un Dans ce champ, utilisez un espace au lieu de virgules comme séparateur entre les balises. Voici une version mise à jour de la structure :

type Page struct {
    PageId string                 `bson:"pageId" json:"pageId"`
    Meta   map[string]interface{} `bson:"meta" json:"meta"`
}
Copier après la connexion

Avec cette modification, le champ PageId est balisé à la fois pour MongoDB (en tant que pageId) et JSON (en tant que pageId). Cela garantit que le champ sera nommé de manière appropriée lors de l'interaction avec MongoDB ou de l'encodage en JSON.

Référence de la documentation

La documentation du package Go Reflect spécifie la convention pour les chaînes de balises :

By convention, tag strings are a concatenation of optionally space-separated key:"value" pairs.
Copier après la connexion

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