簡體   English   中英

如何在Go模板中訪問數組的第一個索引的值

[英]How to access value of first index of array in Go templates

所以我有和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 )的正確語法是什么?

只需將表達式分組並應用.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()返回的錯誤值,告訴執行模板沒有錯誤。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM