我需要使用*template.Execute方法,但我希望结果为字符串或字节 [],以便我可以将其传递给另一个*template.Execute但该方法将其结果写入编写器。有没有办法创建一个写入我定义的变量的编写器?
2 回答
万千封印
TA贡献1891条经验 获得超3个赞
使用 的实例bytes.Buffer,它实现io.Writer:
var buff bytes.Buffer
if err := tpl.Execute(&buff, data); err != nil {
panic(err)
}
然后,您可以string使用获得结果buff.String(),或使用获得[]byte结果buff.Bytes()。
ABOUTYOU
TA贡献1812条经验 获得超5个赞
您也可以strings.Builder为此目的使用:
package main
import (
"html/template"
"strings"
)
func main() {
t, e := template.New("date").Parse("<p>{{ .month }} - {{ .day }}</p>")
if e != nil {
panic(e)
}
b := new(strings.Builder)
t.Execute(b, map[string]int{"month": 12, "day": 31})
println(b.String())
}
https://golang.org/pkg/strings#Builder
- 2 回答
- 0 关注
- 308 浏览
添加回答
举报
0/150
提交
取消