访问 Go 模板中嵌套“with”或“range”作用域中的外部作用域
在 Go 模板中,使用“with”或“范围”语句创建一个新范围,改变当前范围的上下文。这可能会导致需要访问外部作用域中定义的变量的情况。
使用 $. OuterValue
为了保留对嵌套“with”或“range”范围内调用范围的访问,使用了一个专门定义的变量“$”。该变量由 Go 模板引擎提供,并定向回传递给 Execute 函数的数据值,该值表示初始点 (.) 值。
示例用法
考虑以下模板代码:
{{with .Inner}} Outer: {{$.OuterValue}} Inner: {{.InnerValue}} {{end}}
在此示例中,“with”语句定义了一个新范围“内部”变量。但是,在此范围内,可以使用“$.OuterValue”来访问外部范围中定义的“OuterValue”。
$
Go 模板的文档文档明确描述了“$”的作用如下:
“当执行开始时,$被设置为传递给Execute的数据参数,即到点的起始值。”
此解释确认“$”维护对传递给模板的原始数据的引用,允许访问原始范围的变量。
以上是如何在 Go 模板中的嵌套'with”或'range”语句中访问外部作用域的变量?的详细内容。更多信息请关注PHP中文网其他相关文章!