在使用模版的时候, 使用os.Stdout,只能输出到控制台,但是我又想将获得的输出模版变成字符串,在其他地方使用。
要修改os.Stdout,那么就要找一个实现了 io.Writer 接口的输出, bytes.Buffer 实现了io.Writer接口
tmpl.Execute(os.Stdout, map[string]interface{}{
"Person": "Bob",
"Timeframe": 1,
})
改为
var tmpl = template.Must(template.New("").Parse(`{{.Person}}{{.Timeframe}}`))
buf := new(bytes.Buffer)
tmpl.Execute(buf, map[string]interface{}{
"Person": "Bob",
"Timeframe": 1,
})
fmt.Println(buf.String(), "=====")
这样就可以使用这个字符串了