通八洲科技

如何在Golang中使用text/template生成文本内容_动态替换变量

日期:2025-12-20 00:00 / 作者:P粉602998670
Go 中用 text/template 动态生成文本需定义模板、传入导出字段结构体或 map 数据、调用 Execute 或 Go 1.22+ 的 ExecuteToString 渲染,支持 {{ .Field }} 取值、条件循环及 default 等管道操作。

在 Go 中用 text/template 生成文本并动态替换变量,核心是定义模板、传入数据(结构体或 map)、执行渲染。整个过程简洁明确,无需第三方库。

定义模板字符串或从文件加载

模板可以是硬编码的字符串,也可以从外部文件读取。字符串方式适合简单场景,比如生成日志、配置片段或邮件正文。

准备数据:结构体或 map

Go 模板只能访问**导出(首字母大写)字段**。若用结构体,确保字段名大写;若用 map,键名区分大小写,但建议用字符串键(如 map[string]interface{})更灵活。

执行模板并捕获输出

调用 tmpl.Execute()tmpl.ExecuteToString()(Go 1.22+ 新增)来生成结果。推荐用 bytes.Bufferstrings.Builder 接收输出。

常用模板动作与安全提示

模板支持条件判断、循环、函数调用等,但 text/template 不会自动转义(适合纯文本),和 html/template 用途不同。