ホームページ  >  記事  >  バックエンド開発  >  golangでインポートされたパッケージによって受け取られた構造から特定の項目を削除するにはどうすればよいですか?

golangでインポートされたパッケージによって受け取られた構造から特定の項目を削除するにはどうすればよいですか?

WBOY
WBOY転載
2024-02-06 08:40:06977ブラウズ

如何从 golang 中导入的包接收的结构中删除某些项目?

質問の内容

インポートされたサードパーティ モジュールのパッケージからプロジェクトを受け取りました:

myitem := importpackage.get()

これは次のような構造です:

リーリー

それらを 1 つ以上削除し、golang gin API から json として返したいです:

c.json(200, &myitem)

問題は、これを行うための最も効率的なリソース利用方法を見つけようとすることです。

ループを作成して、必要なフィールドを新しい構造体に書き込むことを考えました:

リーリー

また、API 経由で返す前に、マーシャリングしてからアンマーシャリングして別の構造体に割り当てることも検討しました。 リーリー

これを行うためのより効率的な方法を見つけたいと思っています。

myitem には 300 万行を超える json が含まれており、すべてをループする可能性があります。あるいは、マーシャリングとアンマーシャリングには、比較的単純なものを実装するだけではなく、より多くのプロセスが必要になるようです。

編集: 構造はスライス ([]) です。


正解


異なるラベルを持つ既存の構造のコピーである新しい構造を定義します:

リーリー

次に、この新しい構造を使用してマーシャリングします:

リーリー

これは、新しい構造がインポートされた構造とフィールドごとに互換性がある限り機能します。

以上がgolangでインポートされたパッケージによって受け取られた構造から特定の項目を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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