Boucles For dans les modèles
Les modèles dans Go offrent un moyen puissant de générer du contenu dynamique. Une exigence courante lorsque l’on travaille avec des modèles est le besoin de boucles. Cet article explique comment implémenter des boucles for dans des modèles.
Utiliser Range avec un tableau préparé
Le moyen le plus simple de créer une boucle dans un modèle consiste à utiliser le mot-clé range avec un tableau préparé. Par exemple, considérons le code suivant :
<code class="go">type Person struct { Name string Age int } func main() { people := []Person{{"John", 30}, {"Mary", 25}} tmpl := template.Must(template.New("loop").Parse(` {{range .}} Name: {{.Name}} Age: {{.Age}} {{end}} `)) tmpl.Execute(os.Stdout, people) }</code>
Ce modèle parcourra la tranche de personnes et imprimera le nom et l'âge de chaque personne.
Utilisation d'une fonction externe
Une autre approche consiste à utiliser une fonction externe pour créer une boucle. Cela peut être utile lorsque vous avez besoin de plus de flexibilité ou de fonctionnalités dans votre boucle. Par exemple, la fonction suivante peut générer une simple boucle for :
<code class="go">func For(start, end int) chan int { c := make(chan int) go func() { for i := start; i < end; i++ { c <- i } close(c) }() return c }</code>
Cette fonction prend un point de début et de fin et renvoie un canal qui parcourt chaque entier de la plage. Pour utiliser cette fonction dans un modèle, vous pouvez procéder comme suit :
<code class="go">tmpl := template.Must(template.New("loop").Parse(` {{range For 0 10}} i: {{.}} {{end}} `)) tmpl.Execute(os.Stdout, nil)</code>
Ce modèle itérera de 0 à 9 et imprimera la valeur de i pour chaque itération.
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!