在变量中检索模板输出
在 Go 的模板系统中,Execute 方法将渲染的模板输出到提供的 io.Writer 参数。默认情况下,这通常定向到标准输出(例如 os.Stdout)。但是,在某些情况下,可能需要捕获变量中的模板输出以进行进一步操作。
要实现此目的,您可以利用两种替代方法:
使用字节.Buffer:
var tpl bytes.Buffer if err := t.Execute(&tpl, data); err != nil { return err } result := tpl.String()
bytes.Buffer 实现了 io.Writer 接口,允许您将其用作模板输出。执行调用后,您可以使用 String 方法将渲染的内容作为字符串检索。
使用 strings.Builder:
builder := &strings.Builder{} if err := t.Execute(builder, data); err != nil { return err } result := builder.String()
strings.Builder 提供了一个收集字符串的更专业的方式。它提供了为高效字符串连接量身定制的方法,使其特别适合在某些情况下捕获模板输出。
以上是如何将 Go 模板输出捕获到变量中?的详细内容。更多信息请关注PHP中文网其他相关文章!