Maison >développement back-end >Golang >Comment puis-je accéder au dernier élément d'une tranche Go dans un modèle sans fonctions personnalisées ?

Comment puis-je accéder au dernier élément d'une tranche Go dans un modèle sans fonctions personnalisées ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-19 11:01:03586parcourir

How Can I Access the Last Element of a Go Slice in a Template Without Custom Functions?

Récupération du dernier élément d'une tranche dans un modèle Go

Question :

Dans un modèle Go, il est possible d'obtenir la taille d'une tranche en utilisant len ​​.Things et de l'indexer en utilisant index .Things 4. Cependant, essayer d'indexer le dernier élément à l'aide de index .Things $size donne une erreur car l'indexation est de base zéro. Existe-t-il une solution arithmétique sans recourir à des définitions de fonctions personnalisées ?

Réponse :

Bien que les modèles Go n'offrent pas d'opérations arithmétiques de manière native, vous pouvez étendre leurs fonctionnalités à l'aide d'un FuncMap. Voici comment ajouter une fonction « ajouter » :

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

Cette fonction prend deux entiers et renvoie leur somme. Dans le modèle, il peut être utilisé comme suit :

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

Cela renverra l'élément à l'index $size - 1, obtenant ainsi le dernier élément de la tranche.

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