如何在golang模板中迭代一系列数字?
我想这样做:如何在golang模板中迭代一系列数字?,go,go-templates,Go,Go Templates,我想这样做: {{range $y := .minYear .maxYear}} <option value="y"> {{$y}}</option>
{{range $y := .minYear .maxYear}}
<option value="y"> {{$y}}</option>
{{end}}
t := template.Must(template.New("").Funcs(funcs).Parse(`{{range $y := intRange .minYear .maxYear}}
<option value="y"> {{$y}}</option>{{end}}`))
err := t.Execute(os.Stdout, map[string]int{"minYear": 1961, "maxYear": 1981})
if err != nil {
// handle error
}
{{range$y:=.minYear.maxYear}
{{$y}
{{end}
但模板未按预期呈现。如何修复此问题?模板包不直接支持此功能。创建一个返回整数值切片的模板函数:
var funcs = template.FuncMap{
"intRange": func(start, end int) []int {
n := end - start + 1
result := make([]int, n)
for i := 0; i < n; i++ {
result[i] = start + i
}
return result
},
}
var funcs=template.FuncMap{
“intRange”:func(起始、结束整数)[]整数{
n:=结束-开始+1
结果:=make([]整数,n)
对于i:=0;i
像这样使用它:
{{range $y := .minYear .maxYear}}
<option value="y"> {{$y}}</option>
{{end}}
t := template.Must(template.New("").Funcs(funcs).Parse(`{{range $y := intRange .minYear .maxYear}}
<option value="y"> {{$y}}</option>{{end}}`))
err := t.Execute(os.Stdout, map[string]int{"minYear": 1961, "maxYear": 1981})
if err != nil {
// handle error
}
t:=template.Must(template.New(“”.Funcs(Funcs).Parse(`{range$y:=intRange.minYear.maxYear}}
{{$y}}{{end}}`)
err:=t.Execute(os.Stdout,map[string]int{“minYear”:1961,“maxYear”:1981})
如果出错!=零{
//处理错误
}
.模板包不直接支持此功能。创建一个返回整数值切片的模板函数:
var funcs = template.FuncMap{
"intRange": func(start, end int) []int {
n := end - start + 1
result := make([]int, n)
for i := 0; i < n; i++ {
result[i] = start + i
}
return result
},
}
var funcs=template.FuncMap{
“intRange”:func(起始、结束整数)[]整数{
n:=结束-开始+1
结果:=make([]整数,n)
对于i:=0;i
像这样使用它:
{{range $y := .minYear .maxYear}}
<option value="y"> {{$y}}</option>
{{end}}
t := template.Must(template.New("").Funcs(funcs).Parse(`{{range $y := intRange .minYear .maxYear}}
<option value="y"> {{$y}}</option>{{end}}`))
err := t.Execute(os.Stdout, map[string]int{"minYear": 1961, "maxYear": 1981})
if err != nil {
// handle error
}
t:=template.Must(template.New(“”.Funcs(Funcs).Parse(`{range$y:=intRange.minYear.maxYear}}
{{$y}}{{end}}`)
err:=t.Execute(os.Stdout,map[string]int{“minYear”:1961,“maxYear”:1981})
如果出错!=零{
//处理错误
}
.您可以在模板中使用sprig库:
您可以在模板中使用sprig库:
相关/可能重复:相关/可能重复: