循环渲染

最后更新时间:2026-05-05 10:00:00

1. range 的用途

range 用来遍历列表、数组、切片、map。它是模板渲染列表的核心语法。

{{ range .List }}
  <li>{{ .Title }}</li>
{{ end }}

2. 遍历时上下文会变化

进入 range 之后,点号 . 会变成当前项,不再是外层对象。如果还要使用外层变量,先用 $root := . 保存。

3. 处理空列表

{{ if .List }}
  {{ range .List }}
    <li>{{ .Title }}</li>
  {{ end }}
{{ else }}
  <p>暂无内容</p>
{{ end }}

这是最实用的列表页写法:有数据就渲染,没有数据就显示空态。

4. 获取索引

如果需要序号,可以接收两个返回值:

{{ range $index, $item := .List }}
  <p>{{ add $index 1 }}. {{ $item.Title }}</p>
{{ end }}

第一个变量通常是索引,第二个变量是当前项。

5. map 也能遍历

range 不只适用于列表,也能遍历 map。不过 map 的遍历顺序不保证固定,做展示时要谨慎。