Maison > développement back-end > Golang > Comment puis-je calculer des valeurs dans des modèles HTML à l'aide de Go ?

Comment puis-je calculer des valeurs dans des modèles HTML à l'aide de Go ?

Linda Hamilton
Libérer: 2024-12-03 09:10:11
original
1048 Les gens l'ont consulté

How can I Calculate Values in HTML Templates Using Go?

Calcul de valeurs dans des modèles HTML avec Go

Lorsque vous travaillez avec des modèles Go, il est souvent nécessaire d'effectuer des calculs dans le modèle. Une tâche courante consiste à calculer l'index du dernier élément d'une carte. Bien que l'exemple fourni utilisant {{ $length -1 }} soit incorrect, il existe des solutions alternatives.

Limites des modèles

Il est important de se rappeler que les modèles Go ne sont pas conçu pour une logique complexe. Les calculs du modèle doivent rester simples et toutes les opérations complexes doivent être traitées en dehors du modèle.

Transmission des valeurs calculées

L'approche préférée consiste à pré-calculer les valeurs et transmettez-les comme paramètres au modèle. Cela garantit la séparation de la logique et de la présentation.

Enregistrement de fonctions personnalisées

Une autre option consiste à enregistrer des fonctions personnalisées qui acceptent les paramètres du modèle et effectuent des calculs. Ces fonctions peuvent être appelées dans le modèle, en leur transmettant des valeurs et en renvoyant des résultats calculés.

Exemple

package template

import (
    "html/template"
)

// Register a custom function to calculate the last index.
func LastIndex(m map[string]interface{}) int {
    return len(m) - 1
}

func main() {
    m := map[string]interface{}{"key1": "value1", "key2": "value2"}

    // Parse a template and register the custom function.
    tmpl, err := template.New("").Funcs(template.FuncMap{"LastIndex": LastIndex}).Parse("{{ LastIndex . }}")
    if err != nil {
        // Handle error.
    }

    // Execute the template.
    if err = tmpl.Execute(m, nil); err != nil {
        // Handle error
    }
}
Copier après la connexion

Dans cet exemple, la fonction LastIndex est enregistrée avec le modèle. Dans le HTML, la fonction personnalisée peut être utilisée comme ceci :

<p>The last index of this map is: {{ LastIndex . }}</p>
Copier après la connexion

Ressources supplémentaires

  • [Aller aux modèles (et transmettre les fonctions à modèle)](https://groups.google.com/g/golang-nuts/c/ZmW3hDtE07Q/m/T0ftq_MKD6kJ)
  • [Comment accéder au champ objet par variable dans modèle ?](https://stackoverflow.com/questions/33503055/how-do-i-access-object-field-by-variable-in-template)
  • [Itérer la carte Go pour obtenir l'index]( https://stackoverflow.com/questions/38154785/iterate-go-map-get-index)

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