Maison > développement back-end > Golang > Comment parcourir simultanément plusieurs tableaux de longueurs inégales dans les modèles Go ?

Comment parcourir simultanément plusieurs tableaux de longueurs inégales dans les modèles Go ?

Susan Sarandon
Libérer: 2024-12-03 07:58:10
original
188 Les gens l'ont consulté

How to Iterate Over Multiple Arrays of Unequal Lengths Simultaneously in Go Templates?

Itération simultanée sur plusieurs tableaux à l'aide de modèles Go

Introduction

Dans les modèles Go, il est souvent nécessaire d'itérer simultanément sur plusieurs tableaux. Cela peut constituer un défi, en particulier lorsque les baies ont des longueurs différentes ou ne peuvent pas être facilement restructurées. Voici un guide complet sur la façon de surmonter ce défi et d'effectuer une itération efficace sur plusieurs tableaux ensemble.

Énoncé du problème

Considérez le scénario suivant :

Vous avez deux structures, Schedule et Combo, où Schedule contient un tableau de structures Combo. Vous devez parcourir chaque Combo et afficher ses données Sons, Volumes et Attentes sur une page HTML. Cependant, les tableaux contiennent des longueurs variables, et vous ne pouvez pas modifier les structures car elles sont utilisées ailleurs dans le projet.

Solution

Pour résoudre ce problème, nous pouvons utiliser un "multi-range" technique de bouclage, qui nous permet de parcourir plusieurs tableaux simultanément. Voici comment :

{{range .Schedule.Combos}}
<div class="container">
    <div class="row">
        <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 class="col">
            <div class="card mt-2">
                <div class="card-body">
                    <h5 class="card-title">
                        <strong>Sounds</strong>
                    </h5>
                    {{ $volumes := .Volumes }}
                    {{ $waits := .Waits }}
                    {{range $index,$sound := .Sounds }}
                        <h5 class="card-text">
                            Sound {{.}}
                            Volume {{index $volumes $index}}
                            Wait {{index $waits $index}}
                        </h5>
                    {{end}}
                </div>
            </div>
        </div>
    </div>
</div>
{{end}}
Copier après la connexion

Explication

Dans le modèle ci-dessus :

  • Nous parcourons le tableau Schedule.Combos en utilisant la boucle de plage externe.
  • Pour accéder aux tableaux Volumes et Waits, nous créons deux nouvelles variables, $volumes et $waits, et leur attribuons les valeurs de .Volumes et .Waits respectivement.
  • Nous utilisons ensuite la boucle de plage interne pour parcourir le tableau Sounds, et dans cette boucle, nous accédons aux tableaux Volumes et Waits à l'index approprié à l'aide de la fonction index.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal