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

文本/模板问题Parse()vs.ParseFiles()

文本/模板问题Parse()vs.ParseFiles()

Go
Helenr 2021-04-26 13:45:42
我正在尝试使用text / template包做一些简单的工作。模板顶部给出的示例就是我正在使用的示例。如何编写“已解析”文件,以便template.ParseFiles()正确读取和执行该文件?package mainimport (    "text/template"    "os")type Inventory struct {    Material string    Count    uint}func main() {    sweaters := Inventory{"wool", 17}    tmpl, err := template.New("test").Parse("{{.Count}} items are made of {{.Material}}")    // tmpl, err := template.New("test").ParseFiles("file.txt")    if err != nil { panic(err) }    err = tmpl.Execute(os.Stdout, sweaters)    if err != nil { panic(err) }}/*Contents of file.txt:{{.Count}} items are made of {{.Material}}Error thrown:panic: template: test:1: "test" is an incomplete or empty templategoroutine 1 [running]:main.main()    /tmp/templates/t.go:19 +0x21agoroutine 2 [syscall]:created by runtime.main    /var/tmp/portage/dev-lang/go-1.0.1/work/go/src/pkg/runtime/proc.c:221*/我在这里的golang游乐场张贴了此代码的副本
查看完整描述

2 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

sweaters := Inventory{"wool", 17}

tmpl, err := template.ParseFiles("file.txt")

if err != nil {

    panic(err)

}

err = tmpl.ExecuteTemplate(os.Stdout, "file.txt", sweaters)

if err != nil {

    panic(err)

}

如果文件很多,可以使用ParseGlob:


tmpl, err := template.ParseGlob("*.txt")

if err != nil {

    panic(err)

}

err = tmpl.ExecuteTemplate(os.Stdout, "file.txt", sweaters)

if err != nil {

    panic(err)

}

err = tmpl.ExecuteTemplate(os.Stdout, "file2.txt", sweaters)

if err != nil {

    panic(err)

}


查看完整回答
反对 回复 2021-05-17
  • 2 回答
  • 0 关注
  • 323 浏览
慕课专栏
更多

添加回答

举报

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