首頁 >後端開發 >Golang >如何將多個資料物件傳遞給 Go 範本?

如何將多個資料物件傳遞給 Go 範本?

Susan Sarandon
Susan Sarandon原創
2024-12-19 21:22:10669瀏覽

How Can I Pass Multiple Data Objects to Go Templates?

將多個資料傳遞給Go 範本

Go 中的範本執行允許傳遞單一值,但該值可以是複合型別包含多個組件。這提供了用於傳遞和存取模板中各種資料物件的多個選項。

使用結構的複合值:

建立封裝所需資料的自訂結構資料類型:

type Data struct {
    Results []User
    Other   []int
}

指派資料並執行template :

data := &Data{results, []int{1, 2, 3}}
if err := GetTemplate("list").Execute(w, data); err != nil {
    // Handle error
}

在模板中,以{{.Results}} 形式訪問MongoDB 結果,以 {{.Other}} 形式存取整數數組。

使用複合值地圖:

或者,建立一個包含data:

m := map[string]interface{}{
    "Results": results,
    "Other":   []int{1, 2, 3},
}

將地圖傳遞到模板並使用點表示法存取資料:{{.Results}} 表示結果,{{.Other}} 表示整數陣列。

使用切片的複合值:

一種可讀性較差的方法是使用包含data:

s := []interface{}{
    results,
    []int{1, 2, 3},
}

索引模板資料以存取元件:{{index . 0}} 取得結果和{{index . 1}} 用於整數陣列。

附加說明:

請記住,必須匯出資料類型才能在範本中存取。

考慮使用結構體或映射來提高可讀性和可維護性。

有其他方法,但不太實用具體場景。

以上是如何將多個資料物件傳遞給 Go 範本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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