Maison > développement back-end > Golang > le corps du texte

Comment puis-je accéder aux variables de la portée externe dans les instructions « with » ou « range » imbriquées dans les modèles Go ?

DDD
Libérer: 2024-11-24 10:57:10
original
785 Les gens l'ont consulté

How can I access variables from the outer scope in nested

Accès à la portée externe dans les portées imbriquées « avec » ou « plage » dans les modèles Go

Dans les modèles Go, l'utilisation de « avec » ou "range" crée une nouvelle portée, modifiant le contexte de la portée actuelle. Cela peut conduire à des situations où l'accès aux variables définies dans la portée externe devient nécessaire.

Utiliser $. OuterValue

Pour conserver l'accès à la portée appelante dans une portée imbriquée "avec" ou "plage", une variable spécialement définie appelée "$" est utilisée. Cette variable est fournie par le moteur de modèle Go et renvoie à la valeur de données qui a été transmise à la fonction Execute, qui représente la valeur initiale du point (.).

Exemple d'utilisation

Considérez le code de modèle suivant :

{{with .Inner}}
  Outer: {{$.OuterValue}}
  Inner: {{.InnerValue}}
{{end}}
Copier après la connexion

Dans cet exemple, l'instruction "with" définit une nouvelle portée pour "Inner" variables. Cependant, dans cette portée, l'accès à la "OuterValue" définie dans la portée externe peut être réalisé à l'aide de "$.OuterValue."

Documentation de $

Le modèle Go la documentation décrit explicitement le rôle de "$" comme suit :

"Lorsque l'exécution commence, $ est défini sur l'argument de données passé à Execute, c'est-à-dire à la valeur de départ du point."

Cette explication confirme que "$" conserve la référence aux données d'origine transmises au modèle, permettant l'accès aux variables de la portée d'origine.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal