Heim  >  Artikel  >  Backend-Entwicklung  >  Wie iteriere ich durch parallele Arrays mit Bereich und Index in Go-Vorlagen?

Wie iteriere ich durch parallele Arrays mit Bereich und Index in Go-Vorlagen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-04 12:59:29695Durchsuche

How to Iterate Through Parallel Arrays with Range and Index in Go Templates?

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!

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