package main import ( "os" "strings" "text/template" ) var TMPL = strings.Trim(` {{- /* []string expected */}} {{- define "sasakuna"}} {{- range $i, $text := . }} {{$i}}: {{$text}} {{- end }} {{- end }} `, "\n") func main() { tmpl := template.Must(template.New("").Parse(TMPL)) tmpl = template.Must(tmpl.Parse(`{{ template .Name .Data}}`)) tmpl.Execute(os.Stdout, struct { Name string Data []string }{ Name: "sasakuna", Data: []string{"sasa", "kuna"}, }) // Output: // panic: template: :1: unexpected ".Name" in template clause }