通过两种方式提供基于HTML模板的多变量值替换。另外附加一个数组迭代的示例。
传入map实现多值替换
package main import ( "html/template" "os" ) func main() { t, _ := template.New("demo").Parse(`{{define "T"}}Hello, {{.Username}}! Main Page: [{{.MainPage}}]{{end}}`) args1 := map[string]string {"Username": "Hypermind", "MainPage": "http://hypermind.com.cn/go"} _ = t.ExecuteTemplate(os.Stdout, "T", args1) }
传入自定义结构实现多值替换
package main import ( "html/template" "os" ) type Info struct{ Username string MainPage string } func main() { t, _ := template.New("demo").Parse(`{{define "T"}}Hello, {{.Username}}! Main Page: [{{.MainPage}}]{{end}}`) args2 := Info{Username: "Hypermind", MainPage: "http://hypermind.com.cn/go"} _ = t.ExecuteTemplate(os.Stdout, "T", args2) }
二维数组的迭代显示
package main import ( "html/template" "os" ) type Matrix struct { Array [9][9]int } func main() { tmpl, _ := template.New("example").Parse(` {{ $a := .Array }} {{ range $a }}{{ $elem := . }}|{{ range $elem }}{{ printf "%d" . }}{{ end}}| {{end}}`) tmpl.Execute(os.Stdout, matrix) }