Heim >Backend-Entwicklung >Golang >Wie erfasst man die Ausgabe einer Golang-Vorlage in einer Variablen?

Wie erfasst man die Ausgabe einer Golang-Vorlage in einer Variablen?

Susan Sarandon
Susan SarandonOriginal
2024-12-19 03:32:21136Durchsuche

How to Capture Golang Template Output into a Variable?

Erfassen der Golang-Vorlagenausgabe in einer Variablen

Innerhalb einer Golang-Vorlage kann es zu dem Versuch kommen, die Ausgabe einer anderen Vorlage direkt in einer Variablen zu erfassen in einem Fehler. Um diese Funktionalität zu erreichen, muss eine benutzerdefinierte Funktion registriert werden, um die Ausgabe zu erfassen.

Lösung:

  1. Registrieren Sie eine Funktion, die eine benannte Vorlage ausführt und speichert Ergebnis in einem Puffer:
func execTempl(name string) (string, error) {
    buf := &bytes.Buffer{}
    err := t.ExecuteTemplate(buf, name, nil)
    return buf.String(), err
}
  1. Registrieren Sie diese Funktion bei der Vorlage:
t := template.Must(template.New("").Funcs(template.FuncMap{
    "execTempl": execTempl,
}).Parse(tmpl))
  1. Verwenden Sie die registrierte Funktion, um die Ausgabe einer benannten Vorlage zu erfassen:
{{$var := execTempl "my-template"}}

Beispiel Vorlage:

const tmpl = `{{define "my-template"}}my-template content{{end}}
See result:
{{$var := execTempl "my-template"}}
{{$var}}
`

Ausgabe:

See result:

my-template content

Mit diesem Ansatz können Sie eine benannte Vorlage ausführen und deren Ausgabe in einer Vorlagenvariablen speichern. Sie können diese Variable dann verwenden, um sie an andere Funktionen zu übergeben oder in die Vorlagenausgabe einzuschließen.

Das obige ist der detaillierte Inhalt vonWie erfasst man die Ausgabe einer Golang-Vorlage in einer Variablen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn