Template text/template 完全学习
Go 语言 text/template 完全指南 text/template 是 Go 标准库自带的模板引擎,专门用于生成任意文本输出(HTML、配置文件、代码、Prompt 等)。下面从零讲到进阶,每个知识点都配可运行代码。 一、为什么需要模板引擎? 假设你要生成一段 Prompt: 1 2 // 字符串拼接 prompt := "你是一个" + role + "助手。请用" + style + "风格回答。" 一旦需求变复杂——要根据条件加 few-shot 示例、要循环生成示例、要做 A/B 实验——字符串拼接就变得难以维护。 模板引擎把"文案"和"逻辑"分离: 你是一个{{ .Role }}助手。请用{{ .Style }}风格回答。 代码只负责提供数据,模板负责渲染。 二、最小可运行示例 main.go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package main import ( "os" "text/template" ) func main() { tmpl := template.Must(template.New("hello").Parse("你好,{{ .Name }}!你今年 {{ .Age }} 岁。\n")) data := map[string]any{ "Name": "小明", "Age": 18, } if err := tmpl.Execute(os.Stdout, data); err != nil { panic(err) } } 运行: ...