猿问

如何在 Go 模板中访问数组第一个索引的值

所以我在使用它时有 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


叮当猫咪
浏览 283回答 1
1回答

PIPIONE

只需对表达式进行分组并应用.Name选择器:<div>Foobar {{ (index .Doc.Users 0).Name }}</div>这是一个可运行、可验证的示例:type User struct {&nbsp; &nbsp; Name&nbsp; string&nbsp; &nbsp; Email string}t := template.Must(template.New("").Parse(&nbsp; &nbsp; `<div>Foobar {{ (index .Doc.Users 0).Name }}</div>`))m := map[string]interface{}{&nbsp; &nbsp; "Doc": map[string]interface{}{&nbsp; &nbsp; &nbsp; &nbsp; "Users": []User{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {Name: "Bob", Email: "bob@myco.com"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {Name: "Alice", Email: "alice@myco.com"},&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; },}fmt.Println(t.Execute(os.Stdout, m))输出(在Go Playground上尝试):<div>Foobar Bob</div><nil>(<nil>末尾是 返回的错误值template.Execute(),表明执行模板没有错误。)
随时随地看视频慕课网APP

相关分类

Go
我要回答