go 模板问题 io.write类型

如何将模板替换并赋值给string类型的参数?

clipboard.png
原先kk参数的位置是os.Stdout,但是这种会直接在命令里面输出,如何定义这个io.write类型,可以使获取到的替换后的内容可以作为string类型传递给别的接口使用

阅读 2.5k
2 个回答
kk := new(bytes.Buffer)

ss := kk.String()

这里的bytes.Buffer 类型他实现了io.Writer接口所以他可以替换os.stdout
kk还有一个String方法,可以将其中buffer转换为string返回, ss就是字符串类型

比如别人的接口是个函数

func HandleTemplate(content string) {
}

那么现在要做的是定义个io.Writer,并调用HandleTemplate

type W struct {
}
func (w *W)    Write(p []byte) (n int, err error) { //W已经实现了io.Writer接口
    Handle(string(p))
}

然后使用

w := new(W)
t.ExecuteTemplate(w, "T", "Data")
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题