Maison > développement back-end > Golang > le corps du texte

Comment puis-je parcourir des tableaux parallèles dans des modèles HTML à l'aide de la plage et de la fonction index ?

Mary-Kate Olsen
Libérer: 2024-11-05 01:07:02
original
641 Les gens l'ont consulté

How can I iterate over parallel arrays in HTML templates using range and the index function?

Utilisation d'index dans des boucles de plage pour itérer sur des tableaux parallèles dans des modèles HTML

Dans les modèles HTML, la fonction de plage permet l'itération sur des tableaux ou des tranches, permettant la liste des éléments individuels au sein d'une structure. Lorsque vous travaillez avec plusieurs tableaux parallèles, il est souvent nécessaire de les parcourir simultanément, en mappant les éléments de chaque tableau.

Cependant, l'approche suivante ne fonctionne pas comme prévu :

{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}
Copier après la connexion

Ceci échoue car le point (.) dans le bloc de plage fait référence à l'élément en cours d'itération, qui est le deuxième tableau. L'approche correcte consiste à accéder à la valeur du point d'origine, qui représente l'intégralité de la structure de données transmise au modèle.

La fonction index, une fonction de modèle prédéfinie, permet des opérations d'indexation sur des cartes, des tranches et des tableaux. En l'utilisant, l'approche correcte est la suivante :

{{range $i, $e := .First}}$e - {{index $.Second $i}}{{end}}
Copier après la connexion

Cette variante utilise correctement les références de points. Le $ devant Second représente la valeur du point d'origine, permettant l'indexation du deuxième tableau à l'aide de l'index actuel.

Cependant, une solution plus concise consisterait à créer une fonction de modèle personnalisée nommée zip qui accepte plusieurs tranches. et renvoie une tranche de tuples contenant des éléments de chaque tranche d'entrée. Cette approche fournit un modèle plus propre et facilite la réutilisation :

{{range zip .First .Second}}
  {{$a := $._1}}
  {{$b := $._2}}
  {{printf "%v - %v" $a $b}}
{{end}}
Copier après la connexion

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