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
DDDoriginal
2024-12-07 18:26:13771parcourir

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,

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}}

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)

Sortie :

key:a value:b, key:c value:d, key:e value:f

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