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!