如何在Go语言的模板中定义数组变量?

{{ $v1 := "helloworld" }}   //在Go语言的模板中定义一个字符串变量没问题

{{ $v2 := [5]int{1,2,3,4,5} }} //但是定义一个数组变量就会报错。。

请问可以在Go语言的模板中定义一个数组变量吗?如果可以,那应该怎么定义?
阅读 6.1k
1 个回答

没有built-in的方式可以创建一个数组,但是可以自己在外面写一个函数,在模板中调用,见stackoverflow,代码我贴出来:

package main

import (
    "html/template"
    "os"
)

func main() {
tmpl := `
{{ $slice := mkSlice "a" 5 "b" }}
{{ range $slice }}
     {{ . }}
{{ end }}
`
    funcMap := map[string]interface{}{"mkSlice": mkSlice}
    t := template.New("demo").Funcs(template.FuncMap(funcMap))
    template.Must(t.Parse(tmpl))
    t.ExecuteTemplate(os.Stdout, "demo", nil)
}

func mkSlice(args ...interface{}) []interface{} {
    return args
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏