You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Go模板中通过变量值引用另一个变量?

问题

如何在Go模板中使用一个变量的值来引用另一个变量?

现有模板代码:

Hello, {{ index $.planet }}!

对应的数据结构:

{ 
  "planet": "neptune",
  "planet_field": "planet"
}

需求是用planet_field的值替代硬编码的planet,最终输出Hello, neptune!,且无法修改数据结构,该场景适用于仅通过标签获取数据的Prometheus告警模板。

解决方法

Go模板的index函数支持传入动态键名,你可以先获取planet_field的字段值,再用它作为键去访问根对象中的对应字段。

直接使用的写法:

Hello, {{ index $ (.planet_field) }}!

如果需要提升可读性,可以先把字段名存为变量再使用:

{{ $fieldName := .planet_field }}
Hello, {{ index $ $fieldName }}!
原理说明
  • $在Go模板中代表根数据对象,也就是你传入的整个JSON结构
  • .planet_field会先解析出它的实际值"planet"
  • index $ (.planet_field)等价于用"planet"作为键,从根对象中取出对应的"neptune"值
验证示例

使用修改后的模板和原数据结构,最终输出结果为:

Hello, neptune!

内容的提问来源于stack exchange,提问作者Aref Khandan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 11:57:02