Maison  >  Article  >  développement back-end  >  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
DDDoriginal
2024-11-21 10:18:14388parcourir

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

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!

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