Go では、yaml.Unmarshal() 関数を使用して、YAML データを構造化表現 (構造体など) に解析します。ただし、YAML データを構造体に解析しようとすると、不明な理由で空の構造体が返されます。
解決策は、構造体のフィールドを可視化することにあります。デフォルトでは、構造体フィールドはエクスポートされません。つまり、構造体が定義されているパッケージ内でのみアクセスできます。 YAML データを構造体にアンマーシャリングするには、フィールドをエクスポートする必要があります。
Go 構造体のフィールドをエクスポートするには、フィールド名の最初の文字を大文字にします。たとえば、
type Config struct { foo_bar string }
の代わりに、
type Config struct { FooBar string }
を使用します。これにより、FooBar フィールドがエクスポートされ、パッケージの外部からアクセスできるようになります。この変更を加えた後、yaml.Unmarshal() は YAML データを構造体に正常に解析できるようになります。
以上がGo で `yaml.Unmarshal()` が空の構造体を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。