如何在Go语法的模板中输出地图(map)?

huangapple go评论76阅读模式
英文:

How to output a map in a template in Go syntax?

问题

例如,在Go语言中,我有以下代码:x := map[string]bool{"1":true,"2":true}
我想要将它打印到go.tmpl文件中,使用内置的template包。

{{x}}

渲染后,我希望它的输出如下:

x := map[string]bool{"1":true,"2":true}

我有一些方法可以实现吗?

英文:

for example, in go I have x := map[string]bool{"1":true,"2":true}
How can I print it to go.tmpl, using the built-in template package?

// go.tmpl
{{x}}

after render, I want it to be like

x := map[string]bool{"1":true,"2":true}

Do I have some approaches?

答案1

得分: 1

s := `{{x}}`
x := map[string]bool{"1": true, "2": true}
t, err := template.New("t").Funcs(template.FuncMap{
	"x": func() string { return fmt.Sprintf("x := %#v", x) },
}).Parse(s)
if err != nil {
	panic(err)
}
if err := t.Execute(os.Stdout, nil); err != nil {
	panic(err)
}

https://play.golang.org/p/Pww7-PFIWXJ

英文:
s := `{{x}}`
x := map[string]bool{"1": true, "2": true}
t, err := template.New("t").Funcs(template.FuncMap{
	"x": func() string { return fmt.Sprintf("x := %#v", x) },
}).Parse(s)
if err != nil {
	panic(err)
}
if err := t.Execute(os.Stdout, nil); err != nil {
	panic(err)
}

https://play.golang.org/p/Pww7-PFIWXJ

huangapple
  • 本文由 发表于 2021年9月11日 14:49:06
  • 转载请务必保留本文链接:https://go.coder-hub.com/69140710.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定