首页  >  文章  >  后端开发  >  如何在变量中而不是 STDOUT 中捕获 Go 模板输出?

如何在变量中而不是 STDOUT 中捕获 Go 模板输出?

Patricia Arquette
Patricia Arquette原创
2024-11-17 19:40:01274浏览

How to Capture Go Template Output in a Variable Instead of STDOUT?

如何将模板结果输出到变量而不是 STDOUT

在 Go 模板中,Execute() 方法通常将模板输出到通过 os.Stdout io.Writer 屏幕。但是,您可能希望将模板输出分配给变量。

要实现此目的,您可以使用实现 io.Writer 接口的 bytes.Buffer 或 strings.Builder 类型。这些类型提供了用于写入模板输出的内存缓冲区。

使用 bytes.Buffer

var tpl bytes.Buffer
if 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()

在这两种情况下,Execute() 方法都会将模板输出写入缓冲区,您可以使用 String() 方法以字符串形式检索输出。

以上是如何在变量中而不是 STDOUT 中捕获 Go 模板输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn