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}}
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}}
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}}
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!