Heim >Backend-Entwicklung >Golang >Wie erfasst man die Go-Vorlagenausgabe in einer Variablen?
Vorlagenausgabe in Go erfassen
Innerhalb einer Go-Vorlage ist es unmöglich, eine Vorlagenausgabe mithilfe der Syntax {$ direkt einer Variablen zuzuweisen var := Vorlage}. Stattdessen ist es notwendig, eine benutzerdefinierte Funktion zu registrieren, um die Vorlagenausgabe zu erfassen.
Funktionsregistrierung
Um eine Funktion zu registrieren, verwenden Sie die Funktion Template.Funcs(). Sie können damit eine Reihe von Funktionen definieren, die in Ihrer Vorlage verwendet werden können.
Vorlagenausführung
Um eine benannte Vorlage auszuführen und ihre Ausgabe zu erfassen, verwenden Sie Vorlage. ExecuteTemplate(). Diese Funktion verwendet einen Puffer als Ziel, sodass Sie die Vorlagenausgabe direkt in den Puffer schreiben können.
Beispiel
Hier ist ein Beispiel, das die Verwendung einer registrierten Funktion demonstriert Funktion zum Erfassen einer Vorlage Ausgabe:
package main import ( "bytes" "fmt" "text/template" ) var t *template.Template func execTempl(name string) (string, error) { buf := &bytes.Buffer{} err := t.ExecuteTemplate(buf, name, nil) return buf.String(), err } func main() { t = template.Must(template.New("").Funcs(template.FuncMap{ "execTempl": execTempl, }).Parse(tmpl)) if err := t.Execute(os.Stdout, nil); err != nil { panic(err) } } const tmpl = `{{define "my-template"}}my-template content{{end}} See result: {{$var := execTempl "my-template"}} {{$var}} `
Ausgabe:
See result: my-template content
In diesem Beispiel wird die Funktion execTempl() registriert und innerhalb der Vorlage verwendet, um die Funktion „my-“ auszuführen. template“-Vorlage und erfassen Sie deren Ausgabe, die dann der Vorlagenvariablen $var zugewiesen und in der Ausgabe angezeigt wird.
Das obige ist der detaillierte Inhalt vonWie erfasst man die Go-Vorlagenausgabe in einer Variablen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!