Maison > développement back-end > Golang > Comment incrémenter les index dans les modèles Go : surmonter l'erreur 'Syntaxe des nombres illégaux'

Comment incrémenter les index dans les modèles Go : surmonter l'erreur 'Syntaxe des nombres illégaux'

DDD
Libérer: 2024-11-21 10:18:14
original
447 Les gens l'ont consulté

How to Increment Indices in Go Templates: Overcoming the

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
    },
}
Copier après la connexion

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 := .}}`)
Copier après la connexion

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}}
Copier après la connexion

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!

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