首頁  >  文章  >  後端開發  >  如何在 Go 範本中存取數組第一個索引的值?

如何在 Go 範本中存取數組第一個索引的值?

Susan Sarandon
Susan Sarandon原創
2024-11-07 06:15:03176瀏覽

How to Access the Value of the First Index of an Array in Go Templates?

在Go 範本中存取陣列的第一個索引的值

在Go 中使用HTML 範本時,您可能會遇到挑戰存取模板內嵌入的陣列的第一個索引的值。考慮以下範本程式碼:

<div>Foobar {{ index .Doc.Users 0 }}</div>

在這裡,您的目標是取得「Doc.Users」切片中第一個元素的「Name」欄位的值。但是,使用不同語法的多次嘗試均未成功。

檢索「Doc.Users」陣列中第一個元素的「Name」欄位的正確語法是:

<div>Foobar {{ (index .Doc.Users 0).Name }}</div>

為了理解這個語法,讓我們分解它:

  • index .Doc.Users 0:這部分從「Doc.Users」切片檢索第一個元素。
  • (index . Doc.Users 0):將前一個表達式的結果括起來,將其視為單一值。
  • 。名稱:此選擇器存取從前一個表達式取得的值的「名稱」欄位。

透過將表達式分組並套用選擇器,您可以有效地存取所需的「名稱」欄位。

以下是您可以執行來測試此解決方案的範例程式碼:

package main

import (
    "fmt"
    "html/template"
    "os"
)

type User struct {
    Name  string
    Email string
}

func main() {
    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: "[email protected]"},
                {Name: "Alice", Email: "[email protected]"},
            },
        },
    }

    fmt.Println(t.Execute(os.Stdout, m))
}

此程式碼將產生以下輸出,示範成功存取「Doc.Users」切片中第一個用戶的「Name」欄位:

<div>Foobar Bob</div>

以上是如何在 Go 範本中存取數組第一個索引的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn