Maison >développement back-end >Golang >Pourquoi `yaml.Unmarshal()` renvoie-t-il une structure vide dans Go ?

Pourquoi `yaml.Unmarshal()` renvoie-t-il une structure vide dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-07 16:46:13788parcourir

Why Does `yaml.Unmarshal()` Return an Empty Struct in Go?

Démarshaling YAML dans Go Struct

Dans Go, la fonction yaml.Unmarshal() est utilisée pour analyser les données YAML dans une représentation structurée, telle qu'une structure. Cependant, lorsque vous essayez d'analyser des données YAML dans une structure, une structure vide est renvoyée pour des raisons inconnues.

La solution réside dans la visibilité des champs de la structure. Par défaut, les champs de structure ne sont pas exportés, ce qui signifie qu'ils ne sont accessibles que dans le package dans lequel la structure est définie. Pour désassembler les données YAML dans une structure, les champs doivent être exportés.

Pour exporter des champs dans une structure Go, mettez en majuscule la première lettre du nom du champ. Par exemple, au lieu de :

type Config struct {
    foo_bar string
}

Utilisez :

type Config struct {
    FooBar string
}

Cela rend le champ FooBar exporté et permet d'y accéder depuis l'extérieur du package. Après avoir effectué cette modification, yaml.Unmarshal() peut analyser avec succès les données YAML dans la structure.

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:
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