Désagrégation de YAML dans une structure : compréhension des champs non exportés
Dans ce code, vous essayez d'analyser un document YAML dans une structure de configuration. Cependant, la structure de configuration résultante reste vide, comme indiqué par {}. En effet, vos champs de structure ne sont pas exportés.
Solution : Exporter les champs de structure
Le démarshaling YAML nécessite que les champs de structure soient exportés (en commençant par des lettres majuscules) afin qu'ils peuvent y accéder et les remplir. Voici le code corrigé :
type Config struct { FooBar string `yaml:"foo_bar"` }
Comprendre les champs exportés
Dans Go, les champs exportés sont accessibles en dehors du package où ils sont déclarés. Cela signifie que les champs commençant par des lettres majuscules sont accessibles par d'autres packages ou codes. À l'inverse, les champs non exportés (commençant par des lettres minuscules) ne sont accessibles qu'au sein du même package.
Lorsque le YAML Unmarshaling est effectué, les champs exportés sont identifiés et renseignés à partir des données YAML. Étant donné que vos champs d'origine n'étaient pas exportés, YAML Unmarshaling n'a pas pu y accéder et les a laissés vides.
Code corrigé
Après la mise à jour des champs de structure à exporter, le code analysera avec succès les données YAML et remplira la structure de configuration :
type Config struct { FooBar string `yaml:"foo_bar"` } func main() { config := ParseYAMLConfig([]byte(configYAMLData)) fmt.Printf("%v", config) // Outputs: {https://foo.bar} }
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!