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

我正在遵循 Pluralsight 的教程并完全按照它所说的去做,编译甚至可以工作,但是在浏览器上刷新页面时,应用程序会出现混乱并在控制台上输出错误,并且 http 服务器无法按预期工作。


产生这个错误的src代码如下:


package main


import (

    "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

}


慕姐4208626
浏览 153回答 1
1回答

MYYA

你忽略了返回的错误Parse。如果你没有,你会看到这个:template:&nbsp;test:2:&nbsp;function&nbsp;"Title"&nbsp;not&nbsp;defined您的模板不正确,因此Lookup("test")返回nil。{{template&nbsp;"header"&nbsp;.&nbsp;Title}}应该{{template&nbsp;"header"&nbsp;.Title}}点后没有空格。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go