鍍金池/ 問答/GO/ go 模板問題 io.write類型

go 模板問題 io.write類型

如何將模板替換并賦值給string類型的參數(shù)?

clipboard.png
原先kk參數(shù)的位置是os.Stdout,但是這種會直接在命令里面輸出,如何定義這個io.write類型,可以使獲取到的替換后的內(nèi)容可以作為string類型傳遞給別的接口使用

回答
編輯回答
敢試

比如別人的接口是個函數(shù)

func HandleTemplate(content string) {
}

那么現(xiàn)在要做的是定義個io.Writer,并調(diào)用HandleTemplate

type W struct {
}
func (w *W)    Write(p []byte) (n int, err error) { //W已經(jīng)實現(xiàn)了io.Writer接口
    Handle(string(p))
}

然后使用

w := new(W)
t.ExecuteTemplate(w, "T", "Data")
2017年7月19日 05:09
編輯回答
薄荷糖
kk := new(bytes.Buffer)

ss := kk.String()

這里的bytes.Buffer 類型他實現(xiàn)了io.Writer接口所以他可以替換os.stdout
kk還有一個String方法,可以將其中buffer轉(zhuǎn)換為string返回, ss就是字符串類型

2017年11月18日 17:21