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

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

Patricia Arquette
Libérer: 2024-11-01 07:17:30
original
272 Les gens l'ont consulté

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>
Copier après la connexion

Ce programme génère ce qui suit :

1,4,2,
Copier après la connexion

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.
Copier après la connexion
Copier après la connexion

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>
Copier après la connexion

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.
Copier après la connexion
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