gpt4 book ai didi

templates - 在 Go 模板中迭代一系列整数

转载 作者:IT老高 更新时间:2023-10-28 13:10:30 25 4
gpt4 key购买 nike

我正在尝试在模板中进行迭代以进行分页,但似乎没有办法进行迭代。

代替

{{range $i, $e := .aSlice}}

我想做这样的事情

{{range $i := 1 .. 10}}
<div>{{$i}}</div>
{{end}}

有什么建议吗?谢谢!

最佳答案

您可以使用包 github.com/bradfitz/iter 以最少的工作量为了那个原因。它提供了一个函数N,你可以像这样使用它:

{{range $i, $_ := N 10}}
<div>{{$i}}</div>
{{end}}

使用模板上的Funcs方法添加函数N,如下所示:

myTemplate.Funcs(template.FuncMap{"N": iter.N})

对于 1..m 而不是 0..m 使用 N m+1 并忽略 0:

{{range $i, $_ := N 11}}
{{if $i}}
<div>{{$i}}</div>
{{end}}
{{end}}

当然,您可以完全不同地解决这个问题。只需定义您自己的函数即可两个参数并创建一个整数流,例如(play):

func N(start, end int) (stream chan int) {
stream = make(chan int)
go func() {
for i := start; i <= end; i++ {
stream <- i
}
close(stream)
}()
return
}

templ := `{{range $i := N 1 10}}
<div>{{$i}}</div>
{{end}}`

t := template.New("foo").Funcs(template.FuncMap{"N": N})

关于templates - 在 Go 模板中迭代一系列整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22713500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com