溫馨提示×

Go語言模板引擎如何設置變量

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

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

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)
	}

	// 執行模板,并將結果輸出到標準輸出
	err = tmpl.Execute(os.Stdout, nil)
	if err != nil {
		panic(err)
	}
}

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

Hello, John!

如果你想在模板中設置一個變量并在其他地方使用它,你可以使用{{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)
	}

	// 執行模板,并將結果輸出到標準輸出
	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}}來執行這兩個模板,并傳遞相應的變量。輸出將是:

Hello, John!
Hello, my name is John!

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女