首页  >  文章  >  后端开发  >  如何在 Go 模板中的嵌套'with”或'range”语句中访问外部作用域的变量?

如何在 Go 模板中的嵌套'with”或'range”语句中访问外部作用域的变量?

DDD
DDD原创
2024-11-24 10:57:10787浏览

How can I access variables from the outer scope in nested

访问 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn