Maison > développement back-end > Golang > Comment puis-je créer et modifier des variables globales dans le package html/template de Go ?

Comment puis-je créer et modifier des variables globales dans le package html/template de Go ?

Mary-Kate Olsen
Libérer: 2024-11-25 08:41:27
original
306 Les gens l'ont consulté

How Can I Create and Modify Global Variables Within Go's html/template Package?

Créer des variables globales et les modifier à plusieurs emplacements dans le html/template de Go

Dans le package html/template de Go, définir une variable dans son la portée l’isole effectivement à cette région spécifique. Dans l'exemple fourni, la variable $currentUserId était destinée à stocker une valeur qui persisterait dans tout le modèle, mais sa portée est limitée à la condition if.

Modification des variables du modèle

Go 1.11 a introduit la possibilité de modifier les variables du modèle. L'utilisation de := définit une variable, tandis que = attribue une nouvelle valeur. Les variables peuvent être rendues accessibles globalement si elles sont définies en dehors de la condition if et que leur valeur est modifiée à l'intérieur de celle-ci.

{{$currentUserId := 0}}
{{if .UserData}}
    {{$currentUserId = .UserData.UserId}}
    [<a href="#ask_question">Inside {{$currentUserId}}</a>]
{{else}}
    [No User Data]
{{end}}
[<a href="#ask_question">outside {{$currentUserId}}</a>]
Copier après la connexion

Cela garantit que les modifications apportées dans le bloc {{if}} sont reflétées après la fin du bloc. .

Approches alternatives

  • Personnalisée Fonctions : Enregistrez une fonction comme CurrentUserId() qui renvoie l'ID utilisateur en fonction de la présence de UserData.
  • Variables simulées : Utilisez une fonction personnalisée enregistrée pour simuler des variables modifiables, en stockant données dans une carte transmise au modèle exécution.

Conclusion

Bien que le package de modèles de Go excelle dans la simplicité, il présente des limites pour une logique complexe. Cependant, en utilisant des fonctions d'affectation et personnalisées, vous pouvez manipuler efficacement les valeurs à plusieurs emplacements de vos modèles.

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