最后更新时间:2026-05-07 10:00:00
模板中的 . 叫做当前上下文。最常见的场景是直接读取字段:
{{ .Title }}
{{ .Description }}
{{ .CreatedAt }}如果当前数据是一个对象,点号后面就像访问属性一样去取值。
Go template 可以用 $ 定义变量。变量一般用于保存中间结果,避免重复取值,也方便在嵌套结构里保留外层上下文。
{{ $title := .Title }}
<h1>{{ $title }}</h1>变量定义之后可以再次赋值:
{{ $count := 1 }}
{{ $count = 2 }}实际开发里更常见的是在循环中保存索引、临时文案、外层对象引用。
当你进入 range 之后,点号会变成当前循环项。此时如果还要访问外层对象,通常先保存一个变量:
{{ $root := . }}
{{ range .List }}
<a href="{{ $root.URL }}">{{ .Title }}</a>
{{ end }}$ 是变量前缀,点号 . 是当前对象。range 或 with 后上下文变了。