Maison >développement back-end >Golang >Comment puis-je parcourir plusieurs tableaux simultanément dans les modèles Go ?

Comment puis-je parcourir plusieurs tableaux simultanément dans les modèles Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-03 13:36:11663parcourir

How Can I Iterate Over Multiple Arrays Simultaneously in Go Templates?

Itération de plusieurs tableaux avec des modèles Go

Dans la programmation Go, les modèles constituent un moyen puissant de générer une sortie HTML basée sur des données. Lorsqu'il s'agit de plusieurs structures de données similaires, il peut être difficile de les parcourir simultanément.

Problème :
Considérons deux structures : Schedule et Combo. Nous devons afficher tous les Combos sur une page HTML, en nous assurant que les tableaux Sounds, Volumes et Waits correspondants sont alignés en lignes.

Analyse :
Il est important de noter que le à condition que les structures Schedule et Combo soient immuables et ne puissent pas être modifiées. Cela signifie que nous avons besoin d'une solution de création de modèles intelligente capable de gérer l'itération simultanée de plusieurs tableaux sans altérer les structures de données.

Solution :
Si les tableaux ont la même longueur, vous pouvez utiliser ce qui suit approche :

{{ $volumes := .Volumes }}
{{ $waits := .Waits }}
{{range $index,$sound := .Sounds }}
  <p>Sound: {{$sound}}, Volume: {{index $volumes $index}}, Wait: {{index $waits $index}}</p>
{{end}}

Explication :

  • Extraire les tableaux Volumes et Waits dans des variables distinctes ($volumes et $waits) pour une indexation plus facile.
  • Utilisez la fonction index pour récupérer des éléments spécifiques de ces tableaux en fonction de l'index du son itérant element.

Cette solution doit aligner correctement les données souhaitées, ce qui donne lieu à la sortie requise. Notez que cette approche nécessite que les trois tableaux (Sons, Volumes et Attentes) aient la même longueur.

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!

Déclaration:
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