2014-05-01 57 views
3

我想在Go html /模板中呈現簡單的分頁列表。 Go模板僅支持範圍內的循環({{range x}}{{.}}{{end}}) - 我只有一個簡單的int。有沒有比創建正確尺寸的假切片,地圖或陳的更優雅的方式?所有這些似乎都是爲了輸出N次而強加的。轉到示例:循環索引

回答

3

您可以註冊產生的切片的功能:

package main 

import (
    "os" 
    "text/template" 
) 

func main() { 

    funcMap := template.FuncMap{ 
     "slice": func(i int) []int { return make([]int, i) }, 
    } 

    tmpl := `{{$x := .}}{{range slice 10}}<p>{{$x}}</p>{{end}}` 
    t, _ := template.New("template").Funcs(funcMap).Parse(tmpl) 
    t.Execute(os.Stdout, "42") 

} 

檢查它在playground

+0

呀,但仍然需要創建一個新的片(可能使用相當多的內存),只是實現一個簡單的1..n循環。這似乎很奇怪。 –