Maison  >  Article  >  développement back-end  >  Comment éviter une virgule après le dernier élément d'une plage de modèles Go ?

Comment éviter une virgule après le dernier élément d'une plage de modèles Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-01 07:17:30198parcourir

How to Avoid a Comma After the Last Element in a Go Template Range?

Détection du dernier élément d'un tableau à l'aide de plages dans les modèles Go

Dans les modèles Go, lors d'une itération sur un tableau à l'aide du mot-clé range, un séparateur virgule est automatiquement inséré entre chaque élément. Bien que ce comportement soit utile dans la plupart des cas, il peut devenir un problème lorsque le résultat souhaité nécessite un point plutôt qu'une virgule après le dernier élément.

Considérez le programme suivant :

<code class="go">package main

import (
    "os"
    "text/template"
)

func main() {
    params := map[string]interface{}{
        "items": [3]int{1, 4, 2},
    }
    tpl := "{{range $i, $el := .items}}{{$el}},{{end}}"
    lister, _ := template.New("foo").Parse(tpl)
    lister.Execute(os.Stdout, params)
}</code>

Ce programme génère ce qui suit :

1,4,2,

Notez qu'il y a une virgule après le dernier élément (2). Cependant, nous préférerions que le résultat soit :

1,4,2.

Pour y parvenir, nous pouvons modifier le modèle comme suit :

<code class="go">tpl := "{{range $i, $el := .items}}{{if $i}},{{end}}{{$el}}{{end}}."</code>

La principale différence ici est l'introduction du { {if $i}},{{end}} construction. Cette instruction conditionnelle vérifie si l'itération actuelle de la boucle n'est pas la première, et si c'est le cas, elle émet une virgule. Cela garantit qu'une virgule n'est insérée qu'entre les éléments du tableau, et non après le dernier élément.

En incorporant ce changement, le programme affichera désormais :

1,4,2.

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