dtny30176 2016-05-09 12:32
浏览 277
已采纳

go不能在模板Execute的参数中将输出(字符串类型)用作io.Writer类型

It's easy to execute template ('tmplhtml' in my case) in 'go' to os.Stdout but how to write it to a string 'output' so I can later i.e. send html in mail using "gopkg.in/gomail.v2" ?

var output string
    t := template.Must(template.New("html table").Parse(tmplhtml))
    err = t.Execute(output, Files)
m.SetBody("text/html", output) //"gopkg.in/gomail.v2"

Build error reads 'cannot use output (type string) as type io.Writer in argument to t.Execute: string does not implement io.Writer (missing Write method)' I can implement Writer method but it is supposed to return integer Write(p []byte) (n int, err error)

  • 写回答

1条回答 默认 最新

  • dtv7174 2016-05-09 12:36
    关注

    You need to write to a buffer as follows as this implements the interface io.Writer. Its basically missing a Write method, which you could build your own, but a buffer is more straight forward:

    buf := new(bytes.Buffer)
    t := template.Must(template.New("html table").Parse(tmplhtml))
    err = t.Execute(buf, Files)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥100 chrome插件开发如何在textarea插入文本
  • ¥15 vs 创建windows 窗体应用(.net framework)项目时,出现问题,无法进入下一步
  • ¥15 如何实现安卓Socks5代理服务端,并且实现内网穿透?
  • ¥50 自有服务器搭建正向代理及负载均衡应对高并发
  • ¥15 Expected a list, got: <class 'list'>. Correct! 为什么它不输出答案而是答案的类型
  • ¥15 pbootcms筛选怎么调用出来
  • ¥15 开发板和电机具体的参数?
  • ¥100 如何对超大数据分段并进行对比处理
  • ¥50 mmc在一个管理单元检测到错误
  • ¥15 如何正确使用pyside6,使其符合LGPL?
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部