Heim > Backend-Entwicklung > Golang > Wie kann man in Go-Vorlagen gleichzeitig über mehrere Arrays ungleicher Länge iterieren?

Wie kann man in Go-Vorlagen gleichzeitig über mehrere Arrays ungleicher Länge iterieren?

Susan Sarandon
Freigeben: 2024-12-03 07:58:10
Original
188 Leute haben es durchsucht

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

Mit Go-Vorlagen gleichzeitig über mehrere Arrays iterieren

Einführung

In Go-Vorlagen besteht häufig die Notwendigkeit, gleichzeitig über mehrere Arrays zu iterieren. Dies kann eine Herausforderung darstellen, insbesondere wenn die Arrays unterschiedliche Längen haben oder sich nicht einfach umstrukturieren lassen. Hier ist eine umfassende Anleitung, wie Sie diese Herausforderung meistern und effizient über mehrere Arrays gleichzeitig iterieren können.

Problemstellung

Stellen Sie sich das folgende Szenario vor:

Sie haben zwei Strukturen, Schedule und Combo, wobei Schedule ein Array von Combo-Strukturen enthält. Sie müssen jede Combo durchlaufen und ihre Sounds-, Lautstärke- und Wartedaten auf einer HTML-Seite anzeigen. Allerdings enthalten die Arrays unterschiedliche Längen und Sie können die Strukturen nicht ändern, da sie an anderer Stelle im Projekt verwendet werden.

Lösung

Um dieses Problem zu lösen, können wir ein „Multi-Range“-System verwenden. Schleifentechnik, die es uns ermöglicht, über mehrere Arrays gleichzeitig zu iterieren. So geht's:

{{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}}
Nach dem Login kopieren

Erklärung

In der obigen Vorlage:

  • Wir iterieren über das Schedule.Combos-Array mithilfe der äußeren Bereichsschleife.
  • Um auf die Arrays „Volumes“ und „Waits“ zuzugreifen, erstellen wir zwei neue Variablen, $volumes und $waits, und weisen ihnen die Werte von zu .Volumes bzw. .Waits.
  • Wir verwenden dann die innere Bereichsschleife, um über das Sounds-Array zu iterieren, und innerhalb dieser Schleife greifen wir mithilfe der Indexfunktion auf die Volumes- und Waits-Arrays am entsprechenden Index zu.

Das obige ist der detaillierte Inhalt vonWie kann man in Go-Vorlagen gleichzeitig über mehrere Arrays ungleicher Länge iterieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage