Goのtemplateで整数回繰り返すには


Goのtemplateで下記のようなページャー部分を作成したいです。

[code]

    {{ define "pager" }}
    <ul class="pagination">
        {{ if lt .ContentNum 5 }}
        {{/*これ↓をContentNum回繰り返したい*/}}
        <li><a href="/{{ .BaseLink }}?p=$index+1"></a></li>
        {{ else }}
        <li><a href="/{{ .BaseLink }}?p=2">2</a></li>
        <li><a href="/{{ .BaseLink }}?p=3">3</a></li>
        <p>...</p>
        <li><a href="/{{ .BaseLink }}>p={{ .PageNum }}">{{ .PageNum }}</a></li>
        {{ end }}
    </ul>
    {{ end }}
    
[/code]

`range`で配列を繰り返し処理できますが、数字で回数を指定して繰り返し処理をするにはどのようにすればいのでしょうか。




指定したサイズの配列を作る関数を追加すればよいと思います。

[code]

    package main
    
    import (
        "os"
        "text/template"
    )
    
    func main() {
        funcMap := template.FuncMap{
            "for": func(num int) []int {
                return make([]int, num)
            },
        }
    
        const templateText = `
        {{ range $index, $elem := for . }}
        {{ $index }}
        {{ end }}
        `
    
        tmpl, _ := template.New("t").Funcs(funcMap).Parse(templateText)
        tmpl.Execute(os.Stdout, 5)
    }
    
[/code]




指定したサイズの配列を作る関数を追加すればよいと思います。

[code]

    package main
    
    import (
        "os"
        "text/template"
    )
    
    func main() {
        funcMap := template.FuncMap{
            "for": func(num int) []int {
                return make([]int, num)
            },
        }
    
        const templateText = `
        {{ range $index, $elem := for . }}
        {{ $index }}
        {{ end }}
        `
    
        tmpl, _ := template.New("t").Funcs(funcMap).Parse(templateText)
        tmpl.Execute(os.Stdout, 5)
    }
    
[/code]

