我需要使用*template.Execute方法,但我希望结果是字符串或字节[],这样我就可以将其传递给另一个*template.Execute,但该方法会将其结果写入写入器.有没有一种方法可以创建一个写入我定义的变量的写入器?

推荐答案

使用bytes.Buffer的实例,它实现io.Writer:

var buff bytes.Buffer
if err := tpl.Execute(&buff, data); err != nil {
    panic(err)
}

然后,您可以使用buff.String()获得string结果,或使用buff.Bytes()获得[]byte结果.

Go相关问答推荐

"k8s.io/apimachinery/pkg/runtime.对象(缺少方法DeepCopyBody)

减少在围棋中映射DTO时的重复代码量

为什么Slices包中的函数定义Slice参数的类型参数?

如何在S汇编器中更高效地将全局数据加载到霓虹灯寄存器?

如何在v2 Go SDK中使用KeyConditionExpression查询AWS DynamoDb?

Go:拆分一个由逗号分隔的键/值对字符串,并在给定的键/价值对中嵌入可能的逗号

go中跨域自定义验证的问题

如何从 nil 指针创建值

从 wincrypt API 到 Go 的 RC2 解密

从 eBPF LRU 哈希映射中错误驱逐的元素

当客户端同时是服务器时,需要什么 mTLS 证书?

如何从 Go 中的 `HijackedResponse` 中删除 Cursor Position ANSI 转义码?

Apache Beam 在 Go 中从 PCollection 中 Select 前 N 行

如何使用 Go 代理状态为 OK 的预检请求?

在 Go 模板中对照片使用随机 Int

使用innerxml在 Go 中编码 XML 是否仅适用于某些类型?

golang pic.ShowImage 为什么它不生成图像而是向我发送base64值

有没有办法在 golang 中定义可索引类型?

在 connect-go 拦截器中修改响应体

HTTP 重定向不呈现新页面