山高月小,水落石出。

Template 系统性学习

Go Template 系统性学习指南 Go 标准库的模板引擎是服务端渲染和数据驱动的文本生成工具,核心设计理念是将表现层与数据模型分离。Go 用同一套语法提供了两个包:text/template 用于通用文本生成,html/template 用于 HTML 输出并自带上下文感知的自动转义安全机制。网络服务中生成 HTML 必须使用 html/template。 一、基础用法:三步流程 模板使用的核心流程固定为三步:定义/解析模板 → 准备数据 → 执行渲染。 1.1 从字符串解析 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package main import ( "os" "text/template" ) type Inventory struct { Material string Count uint } func main() { // 步骤1:解析模板 tmpl := template.Must(template.New("test"). Parse("{{.Count}} items are made of {{.Material}}")) // 步骤2:准备数据 sweaters := Inventory{"wool", 17} // 步骤3:执行渲染 tmpl.Execute(os.Stdout, sweaters) // 输出:17 items are made of wool } template.Must 是对 Parse 错误的 panic 包装,适合在包初始化阶段使用。模板中只能访问结构体的导出字段(首字母大写),小写字段在模板侧不可达,会导致执行期报错或呈现零值。 ...

October 13, 2026 · 6 min · zwdart