go无法将输出(类型字符串)用作模板执行的参数中的类型io.Writer

go无法将输出(类型字符串)用作模板执行的参数中的类型io.Writer,go,Go,在“go”to os.Stdout中执行模板(在我的例子中是“tmplhtml”)很容易,但如何将其写入字符串“output”,以便我以后可以使用“gopkg.in/gomail.v2”在邮件中发送html 生成错误读取“无法将输出(类型字符串)用作类型io。t参数中的Writer。执行:字符串未实现io。Writer(缺少写入方法)我可以实现Writer方法,但它应该返回整数Write(p[]字节)(n int,err error)您需要按如下方式写入缓冲区,因为这实现了接口io.Writer

在“go”to os.Stdout中执行模板(在我的例子中是“tmplhtml”)很容易,但如何将其写入字符串“output”,以便我以后可以使用
“gopkg.in/gomail.v2”
在邮件中发送html


生成错误读取“无法将输出(类型字符串)用作类型io。t参数中的Writer。执行:字符串未实现io。Writer(缺少写入方法)我可以实现Writer方法,但它应该返回整数Write(p[]字节)(n int,err error)

您需要按如下方式写入缓冲区,因为这实现了接口
io.Writer
。它基本上缺少一个写方法,您可以自己构建,但缓冲区更直接:

buf := new(bytes.Buffer)
t := template.Must(template.New("html table").Parse(tmplhtml))
err = t.Execute(buf, Files)

无法使用buf(type*bytes.Buffer)作为m.SetBodya Buffer的参数中的类型字符串。Buffer很容易转换为字符串,我认为它只是
buf.string()
文档是
buf := new(bytes.Buffer)
t := template.Must(template.New("html table").Parse(tmplhtml))
err = t.Execute(buf, Files)