php エディタ Xigua では、マッピング スライスをさまざまな属性を持つ構造スライスに変換する方法を紹介します。プログラミングでは、マップ スライスを異なるプロパティを持つ構造スライスに変換する必要がある状況によく遭遇します。この変換は、データの整理と管理を改善するのに役立ちます。この記事では、コードをより効率的かつ柔軟にする、この変換を実装するためのシンプルかつ効果的な方法を紹介します。見てみましょう!
API を使用していて、それに構造体フラグメントを渡す必要があります。 マップがあるので、それを構造に変換する必要があります。
リーリー リーリーしたがって、この例では、異なるキーを持つ文字列のマップである b
と c
を含むマップ a
のスライスがあります。
a
を構造体スライスに変換したいと考えています。最初の要素はプロパティとして prop1
と prop2
を持つ構造体で、2 番目の各要素は次のとおりです。 prop3
と prop4
を属性として持つ構造体。
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 サイトの他の関連記事を参照してください。