Golang templates: как определить массив в переменной?
каким будет правильный синтаксис для определения переменной массива внутри шаблона go ? (здесь шаблон HTML). Вот что я попробовал:
{{define "template"}}
{{ $x:=[]int{0,1,2} }}{{$x[0]}}
{{end}}
журнал ошибок говорит:unexpected "[" in command
спасибо.
2 ответов
нет встроенный способ сделать то, что вы хотите достичь. Вижу аргументы о том, что вы можете делать с аргументами и трубопровода.
но вы можете легко определить свою собственную функцию для достижения своей цели:
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
}
map
или array
тип не поддерживается, но я передаю map
или array
переменная от контроллера к шаблону, затем используйте {{index .Varible KEY}}
для получения map
или array
значение для операций пересылки.
это могло помочь вам.