Conversion de cartes en structures dans Go
Question :
Comment pouvons-nous convertir efficacement un mapper avec les clés de chaîne et les valeurs d'interface {} dans un correspondant struct ?
Réponse :
Il existe deux approches principales :
Utilisation de mapstructure :
import "github.com/mitchellh/mapstructure" mapstructure.Decode(myData, &result)
Implémentation personnalisée :
func SetField(obj interface{}, name string, value interface{}) error { // Logic for setting the field value } func (s *MyStruct) FillStruct(m map[string]interface{}) error { // Iterate over the map and set the struct fields } // Example usage func main() { result := &MyStruct{} err := result.FillStruct(myData) if err != nil { fmt.Println(err) } }
Remarque :
Les deux les approches supposent que les noms des champs de structure correspondent aux clés de la carte et que les valeurs sont du type correct. La gestion de ces cas nécessite du code supplémentaire.
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!