Go语言自带的html/template包是一个功能强大的模板引擎,可以用于生成HTML、XML、SVG等格式的文本。它支持模板继承、嵌套、条件判断、循环等常用的模板语法,并且可以自定义函数和方法,非常灵活。 下面是一个简单的示例: ```go package main import ( "html/template" "os" ) func main() { type Person struct { Name string Age int } p := Person{"Alice", 30} tmpl, err := template.New("test").Parse("{{.Name}} is {{.Age}} years old.\n") if err != nil { panic(err) } err = tmpl.Execute(os.Stdout, p) if err != nil { panic(err) } } ``` 输出结果为: ``` Alice is 30 years old. ``` 在这个例子中,我们定义了一个Person结构体,然后创建了一个模板对象,并用Parse方法解析了一个模板字符串。模板字符串中的{{.Name}}和{{.Age}}是变量占位符,表示要填充的数据。最后,我们通过Execute方法将模板渲染成文本并输出到标准输出。 当然,实际使用中,我们可以将模板保存成文件,然后用ParseFiles或ParseGlob方法解析。除了基本的模板语法,html/template包还提供了许多高级特性,例如模板继承、块定义、变量定义等,可以满足复杂的模板需求。