ホームページ >バックエンド開発 >Golang >Go テンプレートで複数の配列を同時に反復するにはどうすればよいですか?

Go テンプレートで複数の配列を同時に反復するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-03 13:36:11657ブラウズ

How Can I Iterate Over Multiple Arrays Simultaneously in Go Templates?

Go テンプレートを使用した複数の配列の反復

Go プログラミングでは、テンプレートはデータに基づいて HTML 出力を生成する強力な方法を提供します。複数の同様のデータ構造を扱う場合、それらを同時に反復処理するのは難しい場合があります。

問題:
2 つの構造体、Schedule と Combo を考えてみましょう。すべてのコンボを HTML ページに表示し、対応するサウンド、ボリューム、および待機の配列が行に整列していることを確認する必要があります。

分析:
ただし、スケジュールおよびコンボ構造体は不変であり、変更できません。これは、データ構造を変更せずに複数の配列の同時反復を処理できる賢いテンプレート ソリューションが必要であることを意味します。

解決策:
配列の長さが同じ場合、次のようにすることができます。以下を活用するアプローチ:

{{ $volumes := .Volumes }}
{{ $waits := .Waits }}
{{range $index,$sound := .Sounds }}
  <p>Sound: {{$sound}}, Volume: {{index $volumes $index}}, Wait: {{index $waits $index}}</p>
{{end}}

説明:

  • インデックス作成を容易にするために、ボリュームと待機の配列を別の変数 ($volumes と $waits) に抽出します。
  • インデックス関数を使用して、反復サウンドのインデックスに基づいてこれらの配列から特定の要素を取得しますelement.

このソリューションでは、必要なデータが正しく配置され、必要な出力が得られます。このアプローチでは、3 つの配列 (サウンド、ボリューム、待機) がすべて同じ長さである必要があることに注意してください。

以上がGo テンプレートで複数の配列を同時に反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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