猿问

将模板输出到变量而不是STDOUT

我正在使用templatesGolang,在某些时候我使用以下代码:

t.Execute(os.Stdout, xxx);

上面的代码将模板输出到屏幕(因为os.Stdout),但我希望将它分配给一个变量,比如

var temp string;
e := t.Execute(temp, xxx);

但是,当然,这段代码不起作用。那么我该怎么做呢?


RISEBY
浏览 105回答 1
1回答

料青山看我应如是

t.Execute期望实现io.Writer接口的类型。一种选择是使用缓冲区:var tpl bytes.Bufferif err := t.Execute(&tpl, data); err != nil {    return err}result := tpl.String()另一个更专业的替代方案是strings.Builder,在评论中提到:builder := &strings.Builder{}if err := t.Execute(builder, data); err != nil {    return err}result := builder.String()
随时随地看视频慕课网APP

相关分类

Go
我要回答