Просто сгруппируйте выражение и примените селектор .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Детская площадка ):
<div>Foobar Bob</div><nil>
(<nil>
в конце - это значение ошибки, возвращаемое template.Execute()
, говорящее об отсутствии ошибок при выполнении шаблона.)