Heim >Backend-Entwicklung >Golang >Wie kann ich in Go-Vorlagen gleichzeitig über mehrere Arrays iterieren?

Wie kann ich in Go-Vorlagen gleichzeitig über mehrere Arrays iterieren?

Linda Hamilton
Linda HamiltonOriginal
2024-12-18 18:01:17809Durchsuche

How to Iterate Over Multiple Arrays Simultaneously in Go Templates?

Go-Vorlagen: Gleichzeitiges Iterieren über mehrere Arrays

Während der Arbeit an einem Projekt kann es vorkommen, dass Sie gleichzeitig über mehrere Arrays iterieren müssen Go-Vorlagen. Diese Situation entsteht, wenn Sie über Datenstrukturen wie die folgenden verfügen und erfordern, dass jedes Element aus diesen Arrays in einer Ausgabe gruppiert wird.

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
}

Iterieren über Kombinationen

Um die Daten jeder Combo einzeln anzuzeigen, können Sie eine Bereichsschleife verwenden, die über das Array Schedule.Combos iteriert. Dadurch wird jede Kombination durchlaufen. Dies reicht jedoch nicht aus, um die von Ihnen benötigten Daten anzuzeigen.

Arrays in Zeilen kombinieren

Um Daten aus verschiedenen Arrays in Zeilen zu gruppieren, wobei jede Zeile Daten von Sounds enthält , Volumes und Waits-Arrays können Sie dynamische Vorlagen verwenden. Mit dieser Technik können Sie Daten innerhalb der Vorlage selbst manipulieren und ändern.

Dynamische Vorlagen für die Gruppierung

Betrachten Sie die folgende Vorlage:

{{ 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>

Um Töne, Lautstärken und Wartezeiten zu gruppieren, können Sie eine neue Vorlagenvariable erstellen, die alle drei kombiniert Arrays.

{{ $mergedArrays := .Sounds, .Volumes, .Waits }}

Iterieren über kombinierte Arrays

Mit den verfügbaren kombinierten Arrays können Sie sie mithilfe einer verschachtelten Schleife durchlaufen:

{{ range $index, $mergedArray := $mergedArrays }}
    {{ $sound := $mergedArray[0] }}
    {{ $volume := $mergedArray[1] }}
    {{ $wait := $mergedArray[2] }}
    <li>{{ $sound }} - {{ $volume }} - {{ $wait }}</li>
{{ end }}

In dieser verschachtelten Schleife greifen Sie auf die einzelnen Elemente des kombinierten Arrays zu und stellen diese entsprechend dar.

Dieser Ansatz ermöglicht es Ihnen, die Daten aus den Arrays „Sounds“, „Lautstärken“ und „Wartezeiten“ in den gewünschten Zeilen zu gruppieren.

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

Stellungnahme:
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