ホームページ  >  記事  >  バックエンド開発  >  ネストされたオブジェクトの Golang 構造

ネストされたオブジェクトの Golang 構造

王林
王林転載
2024-02-09 16:39:23903ブラウズ

用于嵌套对象的 Golang 结构

php エディタ Apple は、Golang 言語のネストされたオブジェクトに使用される構造の詳細な紹介を共有しました。 Golang では、ネストされたオブジェクト構造は、構造内に他の構造やインターフェイス タイプをネストできる強力な機能です。ネストされたオブジェクトの構造により、コードを簡単に結合して再利用できるため、コードの可読性と保守性が向上します。それだけでなく、ネストされたオブジェクトの構造によって多重継承の効果も得られるため、複雑なデータ構造をより柔軟に設計および構築できるようになります。この記事では、読者がこの機能をよりよく理解し、適用できるように、Golang でネストされたオブジェクトの構造を使用する方法とテクニックについて詳しく説明します。

質問内容

現在 gofiber v2 を使用して golang API を作成しています。

mongo データベース内の音楽トラックには次のようなドキュメント構造があります:

リーリー

現在、私の golang モデルには次のトラック構造があります:

リーリー

現在、すべてのドキュメント フィールドは json に正しくデコードされていますが、埋め込まれた "variations.variations" フィールドを構築する方法で行き詰まっています (バリエーションの中にバリエーションがあることに注意してください)。埋め込みバリアントの構造は、キーのないオブジェクトですが、動的な mongo ID 文字列です。

カスタム構造体とインターフェイス型を実装しようとしましたが、成功しませんでした。

以前にこの問題に遭遇したことがある人がいたら、助けていただければ幸いです。

解決策

可能であれば interface{} (または any) を避け、具体的な型を使用することをお勧めします。例えば。 genres は文字列の配列であり、go では []string を使用します。

variations.variations フィールドの場合、map だけでなく、string キーとその要素を記述する構造体タイプも使用できます。

リーリー

以上がネストされたオブジェクトの Golang 構造の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。