ホームページ > バックエンド開発 > Golang > Go マップを構造体に効率的に変換するにはどうすればよいですか?

Go マップを構造体に効率的に変換するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-28 03:18:14
オリジナル
760 人が閲覧しました

How to Efficiently Convert Go Maps to Structs?

Go でマップを構造体に変換する

質問:

どうすれば効率的にマップを変換できますか?文字列キーとインターフェイス値を対応するマップにマッピングします。{} struct?

答え:

主なアプローチは 2 つあります:

マップ構造の使用:

  • 長所: シンプルで効率的です。
  • 短所: 外部ライブラリ (github.com/mitchellh/mapstruct) が必要です。
import "github.com/mitchellh/mapstructure"

mapstructure.Decode(myData, &result)
ログイン後にコピー

カスタム実装:

  • 長所: 外部依存関係なし。
  • 短所: より複雑で、 error-prone.
func SetField(obj interface{}, name string, value interface{}) error {
    // Logic for setting the field value
}

func (s *MyStruct) FillStruct(m map[string]interface{}) error {
    // Iterate over the map and set the struct fields
}

// Example usage
func main() {
    result := &MyStruct{}
    err := result.FillStruct(myData)
    if err != nil {
        fmt.Println(err)
    }
}
ログイン後にコピー

注:

どちらのアプローチも、構造体のフィールド名がマップ キーと一致し、値が正しいことを前提としています。タイプ。これらのケースを処理するには、追加のコードが必要です。

以上がGo マップを構造体に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート