2 回答
TA贡献1830条经验 获得超9个赞
你不需要调用 ParseFiles 和 Must,你可以调用一个或另一个
func RenderTemplate(w http.ResponseWriter, data interface{}, tmpl... string) {
cwd, _ := os.Getwd()
for _,file:=range tmpl{
file=filepath.Join(cwd,"./view/"+file+".html")
}
t, err := template.ParseFiles(tmpl...)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
err = t.Execute(w, data)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
我相信上面的 func 应该做你想做的......
TA贡献1811条经验 获得超5个赞
template.Must() 有这个签名:
func Must(t *Template, err error) *Template
的参数Must()“巧合”与返回值相同ParseFiles(),ParseGlob()因此Must()如果错误非零,您可以在内部使用这些函数并产生恐慌的效果。所以你可以说
t := template.Must(template.ParseFiles(....))
并且不关心错误检查。这只是一个方便的函数,类似于Must()整个标准库中的所有其他函数,例如regexp.MustCompile().
的实现Must()很简单:
func Must(t *Template, err error) *Template {
if err != nil {
panic(err)
}
return t
}
见https://golang.org/src/text/template/helper.go?s=576:619#L11
- 2 回答
- 0 关注
- 238 浏览
添加回答
举报
