In Go wird die Funktion yaml.Unmarshal() verwendet, um YAML-Daten in eine strukturierte Darstellung, beispielsweise eine Struktur, zu analysieren. Beim Versuch, YAML-Daten in eine Struktur zu analysieren, wird jedoch aus unbekannten Gründen eine leere Struktur zurückgegeben.
Die Lösung liegt in der Sichtbarkeit der Felder der Struktur. Standardmäßig werden Strukturfelder nicht exportiert, was bedeutet, dass auf sie nur innerhalb des Pakets zugegriffen werden kann, in dem die Struktur definiert ist. Um YAML-Daten in eine Struktur zu entmarshalieren, müssen die Felder exportiert werden.
Um Felder in einer Go-Struktur zu exportieren, schreiben Sie den ersten Buchstaben des Feldnamens groß. Zum Beispiel anstelle von:
type Config struct { foo_bar string }
Verwenden Sie:
type Config struct { FooBar string }
Dadurch wird das FooBar-Feld exportiert und ermöglicht den Zugriff darauf von außerhalb des Pakets. Nachdem Sie diese Änderung vorgenommen haben, kann yaml.Unmarshal() die YAML-Daten erfolgreich in die Struktur analysieren.
Das obige ist der detaillierte Inhalt vonWarum gibt „yaml.Unmarshal()' eine leere Struktur in Go zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!