La conversion d'une structure en carte peut être utile dans divers scénarios, tels que le regroupement de données en JSON ou l'interaction avec des systèmes. Cette question explore comment réaliser cette conversion dans Go, en utilisant à la fois la bibliothèque standard et des packages tiers.
La question présente une implémentation originale utilisant le package Reflect :
func ConvertToMap(model interface{}) bson.M { // ... Implementation }
Cependant, l'implémentation d'origine repose fortement sur la réflexion, ce qui peut avoir un impact sur les performances et ne prend pas en charge des fonctionnalités telles que les balises de champ personnalisées.
La réponse acceptée présente le package structs, une solution tierce pratique qui fournit une conversion robuste et efficace d'une structure en une carte :
import "github.com/fatih/structs" type Server struct { Name string ID int32 Enabled bool } // Convert to a map m := structs.Map(&Server{ Name: "gopher", ID: 123456, Enabled: true, })
Le package structs offre plusieurs avantages par rapport à l'implémentation originale :
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!