溫馨提示×

Go語言模板引擎如何設(shè)置變量

小樊
82
2024-11-02 17:35:33
欄目: 編程語言

在Go語言的html/templatetext/template包中,你可以使用{{.}}{{.FieldName}}來訪問傳遞給模板的上下文中的變量。要設(shè)置變量,你可以在模板中使用{{define "name"}}{{template "name"}}動作。這里有一個簡單的例子來說明如何在Go模板中設(shè)置和使用變量:

package main

import (
	"os"
	"text/template"
)

func main() {
	// 定義一個簡單的模板字符串
	tmplStr := `
{{define "greeting"}}Hello, {{.}}!{{end}}
{{template "greeting" "John"}}
`

	// 解析模板字符串
	tmpl, err := template.New("example").Parse(tmplStr)
	if err != nil {
		panic(err)
	}

	// 執(zhí)行模板,并將結(jié)果輸出到標(biāo)準(zhǔn)輸出
	err = tmpl.Execute(os.Stdout, nil)
	if err != nil {
		panic(err)
	}
}

在這個例子中,我們定義了一個名為greeting的模板,它接受一個參數(shù){{.}}。然后,我們使用{{template "greeting" "John"}}來執(zhí)行這個模板,并傳遞一個名為John的變量。輸出將是:

Hello, John!

如果你想在模板中設(shè)置一個變量并在其他地方使用它,你可以使用{{define "name"}}{{template "name" .}}。這里有一個例子:

package main

import (
	"os"
	"text/template"
)

func main() {
	// 定義一個簡單的模板字符串
	tmplStr := `
{{define "main"}}Hello, {{.}}!{{end}}
{{define "greeting"}}Hello, my name is {{.}}!{{end}}
{{template "main" "John"}}
{{template "greeting" .Name}}
`

	// 解析模板字符串
	tmpl, err := template.New("example").Parse(tmplStr)
	if err != nil {
		panic(err)
	}

	// 執(zhí)行模板,并將結(jié)果輸出到標(biāo)準(zhǔn)輸出
	err = tmpl.Execute(os.Stdout, map[string]interface{}{"Name": "John"})
	if err != nil {
		panic(err)
	}
}

在這個例子中,我們定義了兩個模板:maingreeting。main模板使用{{.}}來訪問傳遞給它的變量,而greeting模板使用{{.}}來訪問傳遞給它的.Name變量。我們使用{{template "main" "John"}}{{template "greeting" .Name}}來執(zhí)行這兩個模板,并傳遞相應(yīng)的變量。輸出將是:

Hello, John!
Hello, my name is John!

0