ホームページ  >  記事  >  バックエンド開発  >  マップスライスを異なるプロパティを持つ構造スライスに変換する方法

マップスライスを異なるプロパティを持つ構造スライスに変換する方法

WBOY
WBOY転載
2024-02-08 22:27:29791ブラウズ

マップスライスを異なるプロパティを持つ構造スライスに変換する方法

php エディタ Xigua では、マッピング スライスをさまざまな属性を持つ構造スライスに変換する方法を紹介します。プログラミングでは、マップ スライスを異なるプロパティを持つ構造スライスに変換する必要がある状況によく遭遇します。この変換は、データの整理と管理を改善するのに役立ちます。この記事では、コードをより効率的かつ柔軟にする、この変換を実装するためのシンプルかつ効果的な方法を紹介します。見てみましょう!

質問の内容

API を使用していて、それに構造体フラグメントを渡す必要があります。 マップがあるので、それを構造に変換する必要があります。

リーリー リーリー

したがって、この例では、異なるキーを持つ文字列のマップである bc を含むマップ a のスライスがあります。

a を構造体スライスに変換したいと考えています。最初の要素はプロパティとして prop1prop2 を持つ構造体で、2 番目の各要素は次のとおりです。 prop3prop4 を属性として持つ構造体。

###出来ますか?

https://github.com/mitchellh/mapstruct を見ましたが、私のユースケースでは機能させることができません。私はこの答えを見ました: https://stackoverflow.com/a/26746461/3390419

ライブラリの使用方法を説明します:

リーリー

ただし、これは、

result がインスタンスである構造が事前定義されていることを前提としているようですが、私の場合、構造は動的です。

回避策

まず、各マップを個別にループし、各マップのキーと値のペアを使用して、対応する

reflect.structfield 値スライスを構築します。このようなスライスを準備したら、それを reflect.structof に渡すと、動的構造体の型を表す reflect.type 値が返されます。これを reflect.new に渡して、動的構造体のインスタンス (実際には構造体へのポインター) を表す reflect.value を作成できます。 ###例えば### リーリー

https://www.php.cn/link/3722e31eaa9efae6938cc5c435365dfd

以上がマップスライスを異なるプロパティを持つ構造スライスに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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