Opérations arithmétiques dans les modèles Go : surmonter le défi de l'incrément d'index
Lorsque vous travaillez avec des modèles Go, il est essentiel de comprendre comment effectuer des opérations arithmétiques . Un cas d'utilisation courant consiste à ajuster les indices pour qu'ils commencent à 1 au lieu de 0. Cependant, la syntaxe du modèle prête à l'emploi ne fournit pas de prise en charge directe pour cela.
Le problème : la syntaxe des nombres illégale Erreur
Comme mentionné dans la question, tenter d'incrémenter l'index de base zéro à l'aide de l'expression {{$index 1}} entraîne une « syntaxe numérique illégale : » erreur. En effet, le langage de modèle Go n'autorise pas les opérations arithmétiques directement dans les expressions de modèle.
La solution : des fonctions personnalisées à la rescousse
Pour surmonter cette limitation, nous devons pour créer une fonction personnalisée qui effectue l'opération arithmétique nécessaire. Dans ce cas, une simple fonction d'incrémentation suffira.
Voici un exemple de définition et d'utilisation d'une fonction personnalisée nommée "inc" pour incrémenter l'index :
funcMap := template.FuncMap{ "inc": func(i int) int { return i + 1 }, }
On enregistre ensuite cette fonction personnalisée mappe avec le modèle avant d'analyser le texte du modèle :
tmpl, err := template.New("test").Funcs(funcMap).Parse(`{{range $index, $element := .}}`)
Maintenant, nous pouvons utiliser la fonction "inc" pour incrémenter l'index dans le modèle expression :
{{range $index, $element := .}} Number: {{inc $index}}, Text:{{$element}} {{end}}
En définissant une fonction personnalisée et en l'enregistrant avec le modèle, nous pouvons étendre les fonctionnalités des modèles Go et effectuer des opérations arithmétiques, telles que l'incrémentation de l'index, si nécessaire.
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!