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 }
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}}.`))
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!