ホームページ  >  記事  >  バックエンド開発  >  Go テンプレートでマップを反復処理してデータをグループ化するにはどうすればよいですか?

Go テンプレートでマップを反復処理してデータをグループ化するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-18 07:34:02814ブラウズ

How Can I Iterate Through Maps in Go Templates to Group Data?

テンプレート内のマップの反復

Go テンプレートでは、マップを反復する必要があることがよくあります。テンプレート言語の固有の特性により、これは困難な場合があります。

目的: クラスの種類 (ヨガ、ピラティスなど) ごとにグループ化されたジム クラスのリストを表示します。

解決策: groupClasses() のような関数を利用して、クラス型のマップを作成します。クラス:

func groupClasses(classes []entities.Class) map[string][]entities.Class {
    classMap := make(map[string][]entities.Class)
    for _, class := range classes {
        classMap[class.ClassType.Name] = append(classMap[class.ClassType.Name], class)
    }
    return classMap
}

マップの反復:

課題は、テンプレート内のマップの反復にあります。 Go テンプレートのドキュメントによると、.Key 形式でアクセスする必要があります。これを解凍するには、次の範囲でカンマで区切られた 2 つの変数を宣言します。

{{ range $key, $value := . }}
   <li><strong>{{ $key }}</strong>: {{ $value }}</li>
{{ end }}

これにより、マップが反復処理され、キー (クラス タイプ) と値 (クラスのリスト) の両方にアクセスします。これで、必要に応じてデータを表示できるようになります。

以上がGo テンプレートでマップを反復処理してデータをグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。