Maison > développement back-end > Golang > Comment supprimer les virgules de fin dans les boucles de plage de modèles Go sans fonctions personnalisées ?

Comment supprimer les virgules de fin dans les boucles de plage de modèles Go sans fonctions personnalisées ?

DDD
Libérer: 2024-12-07 18:26:13
original
789 Les gens l'ont consulté

How to Remove Trailing Commas in Go Template Range Loops Without Custom Functions?

Suppression des virgules dans les modèles de boucles de plage avec Go

Dans les boucles de modèles Go, une virgule apparaît souvent après chaque itération, séparant la sortie. Par exemple :

key:a value:b, key:c value:d,
Copier après la connexion

Pour éliminer cette virgule, on recherche une solution qui n'utilise pas de fonctions personnalisées.

Réponse :

Comme de Go 1.11, il est possible de modifier directement les variables du modèle. Cela permet la suppression des virgules via le modèle suivant :

{{$first := true}}
{{range $key, $value := $}}
    {{if $first}}
        {{$first = false}}
    {{else}}
        ,
    {{end}}
    key:{{$key}} value:{{$value}}
{{end}}
Copier après la connexion

Dans ce modèle, une variable $first est initialisée à true. Pendant la boucle, il vérifie s'il s'agit de la première itération et, si c'est le cas, définit $first sur false pour éviter les virgules lors des itérations suivantes.

Exemple :

type Map map[string]string

m := Map{
    "a": "b",
    "c": "d",
    "e": "f",
}

const temp = `{{$first := true}}{{range $key, $value := $}}{{if $first}}{{$first = false}}{{else}}, {{end}}key:{{$key}} value:{{$value}}{{end}}`

t := template.Must(template.New("example").Parse(temp))
t.Execute(os.Stdout, m)
Copier après la connexion

Sortie :

key:a value:b, key:c value:d, key:e value:f
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal