Maison > développement back-end > Golang > Comment accéder au dernier élément d'une tranche Go dans un modèle sans erreur « Hors de portée » ?

Comment accéder au dernier élément d'une tranche Go dans un modèle sans erreur « Hors de portée » ?

Patricia Arquette
Libérer: 2024-12-01 12:26:15
original
577 Les gens l'ont consulté

How to Access the Last Element of a Go Slice in a Template Without an

Dernier élément d'une tranche dans un modèle Go

Question :

Récupération de la taille d'une tranche dans un Go le modèle est simple en utilisant len. Les valeurs d'index peuvent également être récupérées, mais l'indexation est de base zéro, ce qui entraîne une erreur « hors plage » lors de la tentative d'accès au dernier élément. Comment pouvez-vous obtenir le dernier élément en effectuant des opérations arithmétiques dans le modèle ?

Réponse :

Bien que les modèles Go ne fournissent pas d'opérations arithmétiques intégrées, vous pouvez utiliser un FuncMap pour ajouter des fonctions personnalisées. Voici comment définir une fonction "ajouter" :

import "html/template"

func add(a, b int) int {
    return a + b
}
Copier après la connexion

Pour intégrer la fonction "ajouter" dans votre modèle, utilisez la syntaxe suivante :

t := template.Must(template.New("").Funcs(template.FuncMap{
    "add": func(a, b int) int { return a + b },
    }).Parse(theTemplate)
Copier après la connexion

Maintenant, vous pouvez accéder au dernier élément d'un modèle comme celui-ci :

{{index .Things (add $size -1)}}
Copier après la connexion

Cela renverra correctement le dernier élément de la tranche sans déclencher l'erreur "hors plage". La fonction "ajouter" peut également gérer d'autres scénarios où des opérations arithmétiques sont requises.

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