Heim > Backend-Entwicklung > Golang > Wie erfasst man die Go-Vorlagenausgabe in einer Variablen?

Wie erfasst man die Go-Vorlagenausgabe in einer Variablen?

Susan Sarandon
Freigeben: 2024-12-23 04:47:15
Original
668 Leute haben es durchsucht

How to Capture Go Template Output into a Variable?

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}}
`
Nach dem Login kopieren

Ausgabe:

See result:

my-template content
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage