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
Patricia Arquetteoriginal
2024-12-01 12:26:15571parcourir

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
}

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)

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

{{index .Things (add $size -1)}}

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!

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