Heim > Artikel > Backend-Entwicklung > Wie kann ich die Go-Vorlagenausgabe in einer Variablen erfassen, anstatt sie auf STDOUT zu drucken?
Vorlagenausgabe einer Variablen neu zuweisen
In Go bieten Vorlagen eine praktische Möglichkeit, benutzerdefinierte Ausgaben zu generieren. Standardmäßig wird die Ausgabe mit t.Execute(os.Stdout, xxx) auf der Standardausgabe (STDOUT) gedruckt. Es kann jedoch vorkommen, dass Sie die Ausgabe stattdessen lieber einer Variablen zuweisen möchten.
Um dies zu erreichen, ist es wichtig zu bedenken, dass t.Execute eine Eingabe erwartet, die die io.Writer-Schnittstelle implementiert. Eine geeignete Option ist die Verwendung eines Puffers, z. B. eines bytes.Buffer oder eines strings.Builder.
Verwendung eines bytes.Buffer:
var tpl bytes.Buffer if err := t.Execute(&tpl, data); err != nil { return err } result := tpl.String()
Dieser Code erstellt a bytes.Buffer und übergibt seine Adresse an t.Execute. Wenn die Vorlagenausführung erfolgreich ist, wird die Ausgabe im Puffer gespeichert, die dann mit tpl.String() als String abgerufen werden kann.
Mit einem strings.Builder:
builder := &strings.Builder{} if err := t.Execute(builder, data); err != nil { return err } result := builder.String()
Der strings.Builder bietet eine speziellere Alternative. Ähnlich wie beim vorherigen Ansatz wird der Builder als io.Writer an t.Execute übergeben und die Ausgabe wird im Builder gesammelt. Die builder.String()-Methode kann dann verwendet werden, um die Ausgabe als String abzurufen.
Das obige ist der detaillierte Inhalt vonWie kann ich die Go-Vorlagenausgabe in einer Variablen erfassen, anstatt sie auf STDOUT zu drucken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!