Zugriff auf Go-Methoden über HTML-Vorlagen
In Go sind Vorlagen eine vielseitige Möglichkeit, HTML-Inhalte dynamisch zu generieren. Allerdings kann das Aufrufen von Methoden aus Vorlagen heraus manchmal eine Herausforderung darstellen.
Problem:
Bedenken Sie die folgende Go-Struktur:
type Person struct { Name string } func (p *Person) Label() string { return "This is " + p.Name }
Wie kann Kann auf diese Methode über eine HTML-Vorlage zugegriffen werden? In der Vorlage möchten Sie eine Syntax ähnlich der folgenden verwenden:
{{ .Label() }}
Lösung:
Um eine Methode aus einer Go-Vorlage aufzurufen, lassen Sie einfach die Klammern weg :
{{ .Label }}
Der folgende Go-Code demonstriert Dies:
package main import ( "html/template" "log" "os" ) type Person string func (p Person) Label() string { return "This is " + string(p) } func main() { tmpl, err := template.New("").Parse(`{{.Label}}`) if err != nil { log.Fatalf("Parse: %v", err) } tmpl.Execute(os.Stdout, Person("Bob")) }
Ausgabe:
This is Bob
Die Dokumentation gibt an, dass Sie jede Methode aufrufen können, die einen oder zwei Werte zurückgibt, vorausgesetzt, der zweite Wert ist vom Typ Fehler. Im letzteren Fall wird der Fehler zurückgegeben, wenn er nicht Null ist, und die Ausführung der Vorlage wird angehalten.
Das obige ist der detaillierte Inhalt vonWie rufe ich Go-Methoden aus HTML-Vorlagen auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!