Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在golang模板中迭代一系列数字?_Go_Go Templates - Fatal编程技术网

如何在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库:


相关/可能重复:相关/可能重复: