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

Comment identifier le dernier élément d'une plage de modèles Go ?

Patricia Arquette
Libérer: 2024-11-08 02:26:01
original
326 Les gens l'ont consulté

How to Identify the Last Item in a Go Template Range?

Identification du dernier élément dans une plage de modèles

Dans les modèles Go, il peut être difficile d'identifier le dernier élément d'une plage. La variable $i intégrée ne représente que l'index actuel, ce qui rend difficile la détermination du moment où l'itération se termine.

Pour surmonter cet obstacle, une solution de contournement consiste à utiliser une fonction personnalisée qui combine la variable $i avec une réflexion. -approche basée sur pour déterminer la longueur de la structure de données itérée. En comparant l'index actuel avec la longueur moins un, nous pouvons détecter avec précision l'itération finale.

Voici un exemple de la façon dont cette fonction personnalisée peut être implémentée :

func last(i int, a interface{}) bool {
    return i == reflect.ValueOf(a).Len() - 1
}
Copier après la connexion

En enregistrant cette fonction dans le cadre d'une FuncMap et en l'utilisant dans un modèle, vous pouvez facilement générer la liste souhaitée séparée par des virgules avec "et" ajouté au dernier élément.

template.Must(template.New("abc").Funcs(fns).Parse(`{{range $i, $e := .}}{{if $i}}, {{end}}{{if last $i $}}and {{end}}{{$e}}{{end}}.`))
Copier après la connexion

Cette solution offre un moyen réutilisable et efficace de identifiez le dernier élément d'une plage de modèles, améliorant ainsi la flexibilité des modèles Go pour la présentation des données.

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