如何访问 Go 模板中数组第一个索引的值
Posted
技术标签:
【中文标题】如何访问 Go 模板中数组第一个索引的值【英文标题】:How to access value of first index of array in Go templates 【发布时间】:2019-03-11 23:09:35 【问题描述】:所以我有和html模板,当我使用这个时,我得到了对象:
<div>Foobar index .Doc.Users 0</div>
输出:
<div>Foobar MyName my@email.com</div>
我只想使用Name
字段我尝试了很多次迭代但没有成功:
index .Doc.Users.Name 0
index .Doc.Users 0 .Name
.Name index .Quote.Clients 0
...
获取数组中第一个元素的 .Name
字段 (.Doc.Users[0].Name
) 的正确语法是什么?
【问题讨论】:
【参考方案1】:只需对表达式进行分组并应用.Name
选择器:
<div>Foobar (index .Doc.Users 0).Name </div>
这是一个可运行、可验证的示例:
type User struct
Name string
Email string
t := template.Must(template.New("").Parse(
`<div>Foobar (index .Doc.Users 0).Name </div>`))
m := map[string]interface
"Doc": map[string]interface
"Users": []User
Name: "Bob", Email: "bob@myco.com",
Name: "Alice", Email: "alice@myco.com",
,
,
fmt.Println(t.Execute(os.Stdout, m))
输出(在Go Playground上试试):
<div>Foobar Bob</div><nil>
(末尾的<nil>
是template.Execute()
返回的错误值,表示执行模板没有错误。)
【讨论】:
感谢 icza 将接受答案。必须等待 6 分钟才能让我接受它以上是关于如何访问 Go 模板中数组第一个索引的值的主要内容,如果未能解决你的问题,请参考以下文章