模板语法
Golang模板使用一种简单而直观的语法。在模板中,可以使用大括号{{}}来执行各种操作,例如条件判断、迭代和变量输出。下面是一个简单的例子: ```go package main import ( "html/template" "os" ) func main() { tmpl, err := template.New("example").Parse("Hello, {{.}}!") if err != nil { panic(err) } err = tmpl.Execute(os.Stdout, "World") if err != nil { panic(err) } } ``` 在这个例子中,我们定义了一个名为"example"的模板,并使用{{.}}来表示要注入的数据。然后,我们通过Execute函数将数据“World”注入到模板中,并将结果输出到标准输出。最终的输出将是"Hello, World!"。条件判断
除了简单的变量注入之外,模板还支持条件判断。可以使用if语句根据某个条件来生成不同的输出。下面是一个示例: ```go package main import ( "html/template" "os" ) func main() { tmpl, err := template.New("").Parse(` {{if .IsAdmin}}Welcome, Admin!
{{else}}Welcome, Guest!
{{end}} `) if err != nil { panic(err) } data := struct { IsAdmin bool }{ IsAdmin: false, } err = tmpl.Execute(os.Stdout, data) if err != nil { panic(err) } } ``` 在这个例子中,我们使用{{if .IsAdmin}}来判断是否是管理员。如果是管理员,将输出"Welcome, Admin!",否则将输出"Welcome, Guest!"。迭代
除了条件判断,模板还支持迭代。可以使用range语句来遍历一个集合,并为每个元素生成相应的输出。下面是一个示例: ```go package main import ( "html/template" "os" ) func main() { tmpl, err := template.New("").Parse(`-
{{range .Users}}
- {{.}} {{end}}