Maison >développement back-end >Golang >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 ?

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
DDDoriginal
2024-11-24 10:57:10853parcourir

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

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!

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