首页 > 后端开发 > Golang > 如何使用 Golang 模板多次重复 HTML 行?

如何使用 Golang 模板多次重复 HTML 行?

DDD
发布: 2024-12-16 07:14:14
原创
511 人浏览过

How to Repeat HTML Lines Multiple Times Using Golang Templates?

在 Golang 模板中迭代 HTML

在 Golang 中,当迭代模板中的元素列表时,您可以使用 {{range }} 行动。但是,它需要一个数组或切片来迭代。要多次重复 HTML 行,我们可以创建一个空切片并用零值或特定值填充它。

使用零值切片

我们可以创建一个空切片 make([]struct{}, n) 来表示我们需要的迭代次数。然后,在模板中,我们使用 {{range}}${} 语法来迭代切片。例如:

tmpl := template.Must(template.New("").Parse(`
<ul>
{{range $idx, $e := .}}
    <li><a href="/?p={{idx}}">{{$idx}}</a></li>
{{end}}
</ul>`))
n := 5
tmpl.Execute(w, make([]struct{}, n))
登录后复制

使用填充切片

或者,我们可以用特定值填充切片。这种方法允许我们跳过在 HTML 代码中使用索引 ($idx)。例如:

tmpl := template.Must(template.New("").Parse(`
<ul>
{{range .}}
    <li><a href="/?p={{.}}">{{.}}</a></li>
{{end}}
</ul>`))
values := make([]int, 5)
for i := range values {
    values[i] = i + 1
}
tmpl.Execute(w, values)
登录后复制

使用零值切片和自定义函数

另一个选项是创建一个自定义函数,将 1 添加到切片索引并返回结果。这允许您在将数字递增 1 的同时使用切片索引。例如:

tmpl := template.Must(template.New("").Funcs(template.FuncMap{
    "Add": func(i int) int { return i + 1 },
}).Parse(`
<ul>
{{range $idx, $e := .}}{{$idx := (Add $idx)}}
    <li><a href="/?p={{$idx}}">{{$idx}}</a></li>
{{end}}
</ul>`))
n := 5
tmpl.Execute(w, make([]struct{}, n))
登录后复制

这些方法提供了根据您的具体要求多次重复 HTML 行的灵活方法。

以上是如何使用 Golang 模板多次重复 HTML 行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板