我有一块要打印到html文件中的切片:
<ul>
{{range .arr}}
<li>{{.}}</li>
{{end}}
</ul>
如果为len(arr) > 5
,如何仅打印切片的前5个元素?
首先,我要提到的是,如果将数组传递给模板,则几乎可以肯定会做些奇怪的事情。数组在Go中很少使用。通常,您将使用slice。
最简单的方法是在运行模板时传递数组的前5个元素的一部分。
如果出于某种原因需要模板中的完整输入,则可以定义一个用于获取切片的函数,如下所示:
func mkslice(a []string, start, end int) []string {
return a[start:end]
}
(请参阅有关如何将功能附加到模板的文档)
和模板:
{{range mkslice .arr 0 5}}
<li>{{.}}</li>
{{end}}
您也可以使用range
带有索引的操作形式。
{{range $i, $val := .arr}}
{{if lt $i 5}}<li>{{$val}}</li>{{end}}
{{end}}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句