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
Linda Hamiltonoriginal
2024-12-03 09:10:11972parcourir

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

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>

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!

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