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

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

Linda Hamilton
リリース: 2024-12-18 18:01:17
オリジナル
805 人が閲覧しました

How to Iterate Over Multiple Arrays Simultaneously in Go Templates?

Go テンプレート: 複数の配列を同時に反復処理する

プロジェクトで作業しているときに、複数の配列を同時に反復処理する必要が生じる場合があります。 Go テンプレート。この状況は、以下のようなデータ構造があり、これらの配列の各要素を出力でグループ化する必要がある場合に発生します。

type Schedule struct {
    Description   string
    ControlNights int
    PlayNights    int
    StartDay      int
    Combos        []Combo
}

type Combo struct {
    From    time.Time
    Every   int
    Until   time.Time
    Sounds  []string
    Volumes []int
    Waits   []int
}
ログイン後にコピー

コンボの反復

各コンボのデータを個別に表示するには、Schedule.Combos 配列を反復する範囲ループを使用できます。これはコンボごとに繰り返されます。ただし、これでは必要なデータを表示するには不十分です。

配列を行に結合

異なる配列のデータを行にグループ化します。各行にはサウンドのデータが含まれます。 、ボリューム、および待機配列では、動的テンプレートを利用できます。この手法を使用すると、テンプレート自体内のデータを操作および変更できます。

グループ化用の動的テンプレート

次のテンプレートについて考えてみましょう:

{{ range .Schedule.Combos }}
<div class="container">
    <div class="row">
        <div class="col">
            <div class="card mt-2 ml-2">
                <div class="card-body">
                    <h5 class="card-title"><strong>Timing</strong></h5>
                    <h5 class="card-text">Play every {{.Every}} mins</h5>
                    <h5 class="card-text">From time {{TimeOfDayToString .From}}</h5>
                    <h5 class="card-text">Until {{TimeOfDayToString .Until}}</h5>
                </div>
            </div>
        </div>
        <div class="col">
            <div class="card mt-2">
                <div class="card-body">
                    <h5 class="card-title"><strong>Sounds</strong></h5>
                    {{ range .Sounds }}
                    <h5 class="card-text">Sound {{.}}</h5>
                    {{ end }}
                </div>
            </div>
        </div>
ログイン後にコピー

サウンド、ボリューム、待機をグループ化するには、3 つすべてを組み合わせた新しいテンプレート変数を作成します。 arrays.

{{ $mergedArrays := .Sounds, .Volumes, .Waits }}
ログイン後にコピー

結合された配列の反復

使用可能な結合された配列を使用すると、ネストされたループを使用してそれらを反復できます。

{{ range $index, $mergedArray := $mergedArrays }}
    {{ $sound := $mergedArray[0] }}
    {{ $volume := $mergedArray[1] }}
    {{ $wait := $mergedArray[2] }}
    <li>{{ $sound }} - {{ $volume }} - {{ $wait }}</li>
{{ end }}
ログイン後にコピー

このネストされたループでは、結合された配列の個々の要素にアクセスし、それらを表示します

このアプローチにより、サウンド、ボリューム、待機配列のデータを目的の行にグループ化できます。

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

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