微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将执行文本/模板模板的结果赋值给变量

如何解决将执行文本/模板模板的结果赋值给变量

type Inventory struct {
    Material string
    Count    uint
}

sweaters := Inventory{"wool",17}
tmpl,err := template.New("test").Parse("{{.Count}} items are made of {{.Material}}")
err = tmpl.Execute(os.Stdout,sweaters)

如何将模板执行的结果保存在 golang 变量中,而不是写入 os.Stdout

解决方法

正如您在这里看到的 https://golang.org/pkg/text/template/#Template.Execute,execute 方法中有一个 io.Writer 参数,因此您可以传递任何 io.Writer

我希望这会有所帮助。 https://play.golang.org/p/kXRQ7G3uO20

package main

import (
    "fmt"
    "bytes"
    "text/template"
)

type Inventory struct {
    Material string
    Count    uint
}


func main() {
    var buf bytes.Buffer
    sweaters := Inventory{"wool",17}
    tmpl,_ := template.New("test").Parse("{{.Count}} items are made of {{.Material}}")
    _ = tmpl.Execute(&buf,sweaters)
    
    s := buf.String()
    fmt.Println(s)
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。