亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

go 不能在模板 Execute 的參數中使用輸出(類型字符串)作為類型 io.Writer

go 不能在模板 Execute 的參數中使用輸出(類型字符串)作為類型 io.Writer

Go
臨摹微笑 2022-01-10 14:39:10
在“go”到os.Stdout 中執行模板(在我的情況下為“tmplhtml”)很容易,但如何將其寫入字符串“輸出”,以便我以后可以使用"gopkg.in/gomail.v2"?發送郵件中的 html ?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"構建錯誤讀取“不能在 t.Execute 的參數中使用輸出(字符串類型)作為 io.Writer 類型:字符串沒有實現 io.Writer(缺少寫入方法)”我可以實現 Writer 方法,但它應該返回整數寫入( p []byte) (n int, err 錯誤)
查看完整描述

2 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

您需要按如下方式寫入緩沖區,因為它實現了接口io.Writer。它基本上缺少一個 Write 方法,您可以構建自己的方法,但緩沖區更直接:


buf := new(bytes.Buffer)

t := template.Must(template.New("html table").Parse(tmplhtml))

err = t.Execute(buf, Files)


查看完整回答
反對 回復 2022-01-10
?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

您還可以使用strings.Builder:


package main


import (

   "strings"

   "text/template"

)


func main() {

   t, err := new(template.Template).Parse("hello {{.}}")

   if err != nil {

      panic(err)

   }

   b := new(strings.Builder)

   t.Execute(b, "world")

   println(b.String())

}


查看完整回答
反對 回復 2022-01-10
  • 2 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號