ホームページ >バックエンド開発 >Golang >複数のデータオブジェクトを Go テンプレートに渡すにはどうすればよいですか?

複数のデータオブジェクトを Go テンプレートに渡すにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-29 05:58:10259ブラウズ

How to Pass Multiple Data Objects to a Go Template?

複数のデータ オブジェクトを Go テンプレートに渡す

はじめに
Go テンプレートの機能を強化するには、多くの場合、複数のデータオブジェクトをそれらに追加します。これにより、テンプレートに複雑なデータ構造を表示できます。

テンプレート データのデータ構成
複数のデータ オブジェクトを渡すには、それらを単一の値に構成できます。

構造体の使用
データ用にエクスポートされたフィールドを含む構造体を作成するオブジェクト:

type Data struct {
    Results []User // MongoDB query result
    Other   []int  // Integer array
}

例:

data := &Data{results, []int{1, 2, 3}}

マップの使用
名前付きデータの文字列キーを使用したマップの作成値:

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

例:

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

テンプレート内のデータへのアクセス
テンプレートでは、構成されたデータにアクセスできます:

{{range .Results}}
    Name: {{.Name}}
{{end}}
{{range $key, $val := .Results}}
    {{$key}}: {{$val.Name}}
{{end}}
{{.Other}}

例実行

GetTemplate("list").Execute(w, data)
GetTemplate("list").Execute(w, m)

代替アプローチ
上記の方法は広く使用されていますが、他のオプションには次のようなものがあります。

  • チャネルを介したデータの受け渡し
  • カスタム関数の登録

以上が複数のデータオブジェクトを Go テンプレートに渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。