登录
首页 >  Golang >  Go问答

在 Go 模板中使用变量

来源:stackoverflow

时间:2024-03-18 09:36:29 221浏览 收藏

在 Go 模板中,可以通过创建变量并使用 {{template}} 调用来使用变量作为文本值。然而,纯 Go text/template 语言不允许 {{template}} 调用采用变量名称。 Kubernetes Helm 部署管理器扩展了模板语言,包括 include template 函数,该函数可以采用任何值作为模板名称并生成一个字符串。这使得在 Helm yaml 文件中使用变量作为模板名称成为可能。

问题内容

在 go 中我们可以很容易地创建一个变量

{{- if .bool.var -}}
  {{ $myvar := "val" }}
{{- end -}}

我们甚至可以轻松创建共享片段

{{- define "val" -}}
  

Some shared template data

{{- end -}}

我的问题是,我们如何使用 $myvar 作为 {{template}} 的文本值,以便我们可以执行类似 的操作{{template $myvar}},不会导致错误,或者这是不可能的?


解决方案


在纯 Go text/template language 中(这不是 go 本身,而是 go 中实现的不同东西),这是不可能的; {{template}} 调用采用文字字符串名称。

这种语言最著名的用户之一是 kubernetes Helm 部署管理器。这包括模板语言的几个扩展。其中之一是 include template function,它可以采用任何值作为模板的名称,并生成一个字符串,而不是立即输出模板内容(您可以将其包含在管道中,而 template 则不能这样做)。因此,特别是在 kubernetes-helm yaml 文件中,您可以

{{ include $MyVar }}

今天关于《在 Go 模板中使用变量》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>