text/template: map的键中有空格

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

text/template: space in map's key

问题

你可以在解析参数中使用点号来访问map键的值。在你的代码中,你可以这样修改解析参数:

tmpl, err := template.New("test").Parse("Movie name: {{.\"name of the movie\"}}")

这样,tmpl.Execute 将会将 hello 显示在输出中。

英文:

I have the following code (using text/template):

inventory := map[string]string{"name of the movie": "hello"}
tmpl, err := template.New("test").Parse("Movie name ") // I want to display "hello" there
if err != nil { panic(err) }
err = tmpl.Execute(os.Stdout, inventory)
if err != nil { panic(err) }

As you can see, there is spaces in my map's key name of the movie. How can I do in the parse argument to display hello (which is the value of name of the movie)?

答案1

得分: 8

使用索引函数:电影名称:{{index . "电影名称"}}

文档中可以得知:

index
  返回将第一个参数按照后续参数进行索引的结果。因此,在Go语法中,"index x 1 2 3"等价于x[1][2][3]。每个被索引的项必须是一个map、slice或array。
英文:

Use the index function: Movie name: {{index . "name of the movie"}}

From the docs:

index
  Returns the result of indexing its first argument by the
  following arguments. Thus "index x 1 2 3" is, in Go syntax,
  x[1][2][3]. Each indexed item must be a map, slice, or array.

huangapple
  • 本文由 发表于 2015年1月27日 08:19:14
  • 转载请务必保留本文链接:https://go.coder-hub.com/28161229.html
匿名

发表评论

匿名网友

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

确定