Iterieren durch parallele Arrays mit Bereich und Index
Wie können wir zwei parallele Arrays mit derselben Größe durchlaufen und Elemente aus beiden Arrays auflisten? Bereich gleichzeitig verwenden?
Der folgende Code zeigt einen erfolglosen Versuch:
<code class="go">{{range $i, $e := .First}}{{ $e }} - {{ index .Second $i }}{{end}}</code>
Um dieser Herausforderung zu begegnen, können wir die vordefinierte globale Vorlagenfunktion Index verwenden. Mit dieser Funktion können wir das erste Argument mit nachfolgenden Argumenten indizieren, ähnlich wie die Indizierung in Go funktioniert.
<code class="go">index x 1 2 3</code>
ist äquivalent zu:
<code class="go">x[1][2][3]</code>
Allerdings innerhalb des Bereichsblocks Punkt wurde neu zugewiesen. Um zum ursprünglichen Punkt zurückzukehren, verwenden wir die integrierte Vorlagenfunktion, die $ zunächst auf das an Execute übergebene Datenargument setzt. Daher können wir unseren Code ändern:
<code class="go">{{range $i, $e := .First}}{{$e}} - {{index $.Second $i}}{{end}}</code>
Als Alternative dazu kann es sauberer sein, eine Vorlagenfunktion namens zip zu erstellen, die mehrere Slices in ein Slice von Wertepaaren umwandelt.
Das obige ist der detaillierte Inhalt vonWie iteriere ich durch parallele Arrays mit Bereich und Index in Go-Vorlagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!