Maison > Article > développement back-end > Comment gérer efficacement la portée des variables globales dans les modèles Go HTML ?
Lors de la création de variables globales dans le package html/template de Go, il est crucial de comprendre les limites de la portée. Selon la documentation du package, les variables définies dans un modèle ont une portée limitée s'étendant jusqu'à la fin de la structure de contrôle (par exemple, if, with, range) dans laquelle elles sont déclarées.
Considérez le code HTML/modèle suivant :
{{if .UserData}} {{$currentUserId := .UserData.UserId}} [<a href="#ask_question">Inside {{$currentUserId}}</a>] {{else}} {{$currentUserId := 0}} {{end}} [<a href="#ask_question">outside {{$currentUserId}}</a>]
Ce code vise à afficher l'ID utilisateur actuel à l'intérieur du bloc if et 0 à l'extérieur du bloc. Cependant, le résultat affiche 0 aux deux endroits en raison de la portée limitée de $currentUserId.
Go 1.11 a introduit la prise en charge de la modification des valeurs des variables de modèle. Pour initialiser une variable, utilisez :=, comme dans :
{{$currentUserId := 0}}
Pour mettre à jour sa valeur, utilisez =, comme dans :
{{$currentUserId = .UserData.UserId}}
En modifiant une variable définie en dehors du bloc if , la modification est accessible à la fois à l'intérieur et à l'extérieur du bloc.
Si la modification des variables globales ne convient pas, envisagez ces alternatives :
En tirant parti de ces solutions, vous pouvez créer et modifier des variables globales dans le package html/template de Go, garantissant ainsi une portée de variable appropriée et obtenant la fonctionnalité souhaitée dans votre 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!