首页 > 后端开发 > Golang > 如何将 Golang 模板输出捕获到变量中?

如何将 Golang 模板输出捕获到变量中?

Susan Sarandon
发布: 2024-12-19 03:32:21
原创
123 人浏览过

How to Capture Golang Template Output into a Variable?

将 Golang 模板输出捕获到变量中

在 Golang 模板中,尝试将另一个模板的输出直接捕获到变量中可能会导致在错误中。要实现此功能,必须注册一个自定义函数来捕获输出。

解决方案:

  1. 注册一个执行命名模板并存储结果是一个缓冲区:
func execTempl(name string) (string, error) {
    buf := &bytes.Buffer{}
    err := t.ExecuteTemplate(buf, name, nil)
    return buf.String(), err
}
登录后复制
  1. 将此函数注册到template:
t := template.Must(template.New("").Funcs(template.FuncMap{
    "execTempl": execTempl,
}).Parse(tmpl))
登录后复制
  1. 使用注册函数捕获命名模板的输出:
{{$var := execTempl "my-template"}}
登录后复制

示例模板:

const tmpl = `{{define "my-template"}}my-template content{{end}}
See result:
{{$var := execTempl "my-template"}}
{{$var}}
`
登录后复制

输出:

See result:

my-template content
登录后复制

此方法允许您执行命名模板并将其输出存储在模板变量中。然后,您可以使用此变量传递给其他函数或包含在模板输出中。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板