我需要使用*template.Execute方法,但我希望结果为字符串或byte [],以便我可以将其传递给另一个*template.Execute,但该方法将其结果写入编写器。有没有办法创建一个写入我定义的变量的编写器?
答案 0 :(得分:5)
使用bytes.Buffer
的实例,该实例实现Lines <- "Title Year Rating Title Year Rating Title Year Rating
Movie1 1997 6.7 Movie2 1987 8.2 Movie3 2009 7.1"
DF <- read.table(text = Lines, header = TRUE, check.names = FALSE, as.is = TRUE)
:
io.Writer
然后,您可以使用buff.String()
获取var buff bytes.Buffer
if err := tpl.Execute(&buff, data); err != nil {
panic(err)
}
结果,或使用buff.Bytes()
获得string
结果。
答案 1 :(得分:2)
您也可以将 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())
}