
本文详解如何在 Go 中利用 html/template 包结合 {{range}} 动态生成 HTML 表格,通过传入结构体切片自动渲染多行数据,无需预先知道行数,适用于高分榜、用户列表等常见场景。
本文详解如何在 go 中利用 `html/template` 包结合 `{{range}}` 动态生成 html 表格,通过传入结构体切片自动渲染多行数据,无需预先知道行数,适用于高分榜、用户列表等常见场景。
Go 的 html/template 包原生支持声明式循环渲染,核心即 {{range .}}...{{end}} 语法——它会遍历传入的切片(或数组、map 等可迭代值),为每个元素设置当前上下文(.),从而直接访问其字段。这正是实现动态表格的理想方案。
以下是一个完整、可运行的示例,展示如何渲染一个包含姓名与分数的 HTML 表格:
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
package main
import (
"html/template"
"log"
"os"
)
type Highscore struct {
Name string
Score int
}
func main() {
const tpl = `
| 姓名 | 分数 |
|---|---|
| {{.Name}} | {{.Score}} |
运行后将输出标准 HTML 表格,含三行数据。注意关键点:
- {{range .}} 中的 . 指代传入的整个切片(此处为 []Highscore),每次迭代时 . 自动切换为当前结构体实例;
- 字段访问使用 {{.FieldName}}(如 {{.Name}}),Go 模板会自动调用导出字段(首字母大写);
- 若需在循环内访问索引或判断是否为首/末项,可使用 {{range $i, $v := .}} 形式($i 为索引,$v 为值);
- 所有输出默认经 HTML 转义,防止 XSS;如需原始 HTML,可用 {{.RawHTML | safeHTML}}(配合 template.HTML 类型);
- 模板应始终校验 Parse() 和 Execute() 的错误,生产环境建议预编译模板并复用。
此模式高度灵活:只需更换结构体定义与切片数据,即可适配任意实体列表(用户、订单、日志条目等),是构建 Go Web 应用服务端渲染页面的基石实践。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










