首頁 >後端開發 >Golang >如何將 Golang 範本輸出擷取到變數中?

如何將 Golang 範本輸出擷取到變數中?

Susan Sarandon
Susan Sarandon原創
2024-12-19 03:32:21136瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn