我想使用go模板生成类似{{ .Values.something }}
的东西。
但是我无法弄清楚我的模板应该是什么样子,例如,我想到这样的模板
`"{{.Values."{{ .Value }}"}}"`
并针对此结构执行它
type values struct {
Value string
}
但是它没有用,我也尝试了其他一些组合,但是没有运气。有人可以帮我弄清楚如何从go模板中获得{{ .Values.something }}
此输出。
由于模板中的{{
和}}
是特殊的,因此您必须使用操作来输出它们,例如
{{ "{{" }}
和
{{ "}}" }}
一个可行的解决方案:
t := template.Must(template.New("").Parse(`{{"{{"}} .Values.{{.Value}} {{"}}"}}`))
buf := &bytes.Buffer{}
params := map[string]interface{}{
"Value": "Something",
}
if err := t.Execute(buf, params); err != nil {
panic(err)
}
fmt.Println(buf.String())
此输出(在Go Playground上尝试):
{{ .Values.Something }}