大多数生成工具将模板执行到*
bytes.Buffer,使用format.Source格式化缓冲区字节,然后将结果写入输出文件。
给定模板
t和输出writer
w,代码如下所示:
var buf bytes.Bufferif err := t.Execute(&buf, data); err != nil { // handle error}p, err := format.Source(buf.Bytes())if err != nil { // handle error}w.Write(p)Gofmting模板不能确保将输出Gofmted。鉴于使用go /
format包对输出进行gofmt操作非常容易,因此创建用于gofmt模板的工具几乎没有价值。



