3

template.FuncMap を使用しようとしましたが、パニック エラーが発生しました

panic: runtime error: invalid memory address or nil pointer dereference

コード:

type Article struct{
    Id int
    Title string
    Tags  string
}

var (
    tplFuncMap template.FuncMap 
)

func main() {
    article := &Article{Id:1, Title:"hello world", Tags:"golang,javascript"}
    tplFuncMap =  make(template.FuncMap)
    tplFuncMap["Split"] = Split
    tpl, _ := template.ParseFiles("a.html", "b.html")
    tpl = tpl.Funcs(tplFuncMap)
    tpl.Execute(os.Stdout, article)
}

func Split(s string, d string) []string {
    arr := strings.Split(s, d)
    return arr
}

a.html

//i want to split tags and range
{{$arr := Split .Tags ","}}
{{range $k, $v := $arr}}
    <a href="{{$v}}">{{$v}}</a>
{{end}}

ありがとう。

4

1 に答える 1