为了账号安全,请及时绑定邮箱和手机立即绑定

在学习 Pluralsight Go 教程时出现无效的内存地址错误

在学习 Pluralsight Go 教程时出现无效的内存地址错误

Go
慕姐4208626 2021-10-18 16:15:55
我正在遵循 Pluralsight 的教程并完全按照它所说的去做,编译甚至可以工作,但是在浏览器上刷新页面时,应用程序会出现混乱并在控制台上输出错误,并且 http 服务器无法按预期工作。产生这个错误的src代码如下:package mainimport (    "net/http"    "text/template")func main() {    http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {        w.Header().Add("Content Type", "text/html")        templates := template.New("template")        templates.New("test").Parse(doc)        templates.New("header").Parse(header)        templates.New("footer").Parse(footer)        context := Context{            [3]string{"Lemon", "Orange", "Apple"},            "the title",        }        templates.Lookup("test").Execute(w, context)    })    http.ListenAndServe(":80", nil)}const doc = `{{template "header" . Title}}    <body>        <h1>List of Fruit</h1>        <ul>            {{range .Fruit}}                <li>{{.}}</li>            {{end}}        </ul>    </body>`const header = `<!DOCTYPE html><html>    <head><title>{{.}}</title></head>`const footer = `</html>`type Context struct {    Fruit [3]string    Title string}
查看完整描述

1 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

你忽略了返回的错误Parse。如果你没有,你会看到这个:

template: test:2: function "Title" not defined

您的模板不正确,因此Lookup("test")返回nil

{{template "header" . Title}}

应该

{{template "header" .Title}}

点后没有空格。


查看完整回答
反对 回复 2021-10-18
  • 1 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信