猿问

如何在 Go 中为字符串创建一个 writer

我需要使用*template.Execute方法,但我希望结果为字符串或字节 [],以便我可以将其传递给另一个*template.Execute但该方法将其结果写入编写器。有没有办法创建一个写入我定义的变量的编写器?


缥缈止盈
浏览 309回答 2
2回答

万千封印

使用 的实例bytes.Buffer,它实现io.Writer:var buff bytes.Bufferif err := tpl.Execute(&buff, data); err != nil {    panic(err)}然后,您可以string使用获得结果buff.String(),或使用获得[]byte结果buff.Bytes()。

ABOUTYOU

您也可以strings.Builder为此目的使用:package mainimport (&nbsp; &nbsp;"html/template"&nbsp; &nbsp;"strings")func main() {&nbsp; &nbsp;t, e := template.New("date").Parse("<p>{{ .month }} - {{ .day }}</p>")&nbsp; &nbsp;if e != nil {&nbsp; &nbsp; &nbsp; panic(e)&nbsp; &nbsp;}&nbsp; &nbsp;b := new(strings.Builder)&nbsp; &nbsp;t.Execute(b, map[string]int{"month": 12, "day": 31})&nbsp; &nbsp;println(b.String())}https://golang.org/pkg/strings#Builder
随时随地看视频慕课网APP

相关分类

Go
我要回答