golang-如何在模板中拆分字符串
我尝试使用template.FuncMap,但出现了紧急错误golang-如何在模板中拆分字符串,go,Go,我尝试使用template.FuncMap,但出现了紧急错误 panic: runtime error: invalid memory address or nil pointer dereference 代码: a、 html //i want to split tags and range {{$arr := Split .Tags ","}} {{range $k, $v := $arr}} <a href="{{$v}}">{{$v}}</a> {{en
panic: runtime error: invalid memory address or nil pointer dereference
代码:
a、 html
//i want to split tags and range
{{$arr := Split .Tags ","}}
{{range $k, $v := $arr}}
<a href="{{$v}}">{{$v}}</a>
{{end}}
//我想拆分标记和范围
{{$arr:=Split.Tags“,”}
{{range$k,$v:=$arr}}
{{end}
谢谢。您忽略了
模板.ParseFiles
返回的错误,这可能会告诉您您的问题。ParseFiles可能引发错误,因为在解析模板时未定义函数Split
。永远不要忽视错误
编辑
要使其工作,请执行以下操作:
tplFuncMap = make(template.FuncMap)
tplFuncMap["Split"] = Split
tmpl, err = template.New("").Funcs(tplFuncMap).ParseFiles("a.html", "b.html")
区别在于
FuncMap
是在分析模板之前定义的。您错过了重要的一点(错误的原因):在tpl
上访问Funcs
,即nil
@Tyler Egeto,在实际代码中,我有输出错误。我确信“a.html”拆分函数中存在一些问题,因为如果我对代码进行注释,它工作得很好。在模板中删除拆分函数时,它工作得很好的原因是解析器不再找到未定义的函数。正如尼莫所提到的,我本可以说得更清楚。我正在更新一个例子。
tplFuncMap = make(template.FuncMap)
tplFuncMap["Split"] = Split
tmpl, err = template.New("").Funcs(tplFuncMap).ParseFiles("a.html", "b.html")