php Editor Banana では、Go 言語の YAML カスタム タグを紹介します。 YAML は軽量のデータシリアル化形式であり、Go 言語は強力なプログラミング言語として、当然 YAML のサポートを提供します。 Go では、カスタム タグを使用して YAML データ構造を定義し、YAML データをより適切に解析および処理できます。カスタム タグを使用すると、YAML データを Go の構造に簡単にマッピングでき、より柔軟で便利なデータ処理を実現できます。 GoにおけるYAMLカスタムタグの使い方と注意点を詳しく紹介します。
Go にこれらの入れ子構造があり、そのプロパティにカスタム タグを追加しました。 リーリー
ダミーのインスタンスをいくつか作成し、スライスに追加しました。リーリー
最後にデータを整理してファイルに書き込みますリーリー
しかし、取得した yaml には小文字のタグ名ではなく、大文字の構造名が含まれています。 なぜこれが起こるのか、そしてそれを修正する方法を知っている人はいますか? 回避策 使用している yaml 実装が原因です。たとえば、gopkg.in/yaml.v3 を使用すると機能します。 go playground で試してみてください。したがって、解決策の 1 つは、gopkg.in/yaml.v3
のような別の yaml 実装を使用することです。
https:// /pkg.go.dev/sigs.k8s.io/[email protected] を使用していると述べました。パッケージのドキュメントには次のように書かれています:
つまり、ライブラリはまず go-yaml を使用して yaml を json に変換し、次にjson.marshal と
json.unmarshal を使用して構造体で変換を行います。これは、go-yaml とは異なり、json 構造タグとカスタム json メソッド
marshaljson および
unmarshaljson を効果的に再利用することを意味します。
で試してください): リーリー これを機能させるには、
yaml の代わりに json
タグを使用する必要があることに注意してください。 sigs.k8s.io/<a href="/cdn- cgi/ l/email-protection" class="__cf_email__" data-cfemail="047d6569684472352a372a34">[email-protected]</a>
パッケージの癖。 この
パッケージおよび他の yaml 実装で動作させたい場合は、 json タグと yaml タグの両方を
指定できます。
リーリー
以上がGo の YAML カスタム タグの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。