Bei der Arbeit mit Golang-Vorlagen kann die Übergabe benutzerdefinierter Funktionen manchmal zu Fehlern führen, wie z. B. dem Fehler „Funktion nicht definiert“. . So beheben Sie dieses Problem und implementieren die Funktionsübergabe korrekt.
Stellen Sie zunächst sicher, dass benutzerdefinierte Funktionen registriert sind, bevor Sie die Vorlagen analysieren. Das Parsen von Registern ermöglicht es dem Parser, sie zu erkennen und von gültigen Bezeichnern zu unterscheiden. Verwenden Sie die Funktion template.New(), um eine neue, undefinierte Vorlage zu erstellen, und rufen Sie die Methode Template.ParseFiles() auf, um die Vorlagendateien zu analysieren. Zum Beispiel:
t, err := template.New("struct.tpl").Funcs(template.FuncMap{ "makeGoName": makeGoName, "makeDBName": makeDBName, }).ParseFiles("templates/struct.tpl")
Beachten Sie außerdem, dass die Funktion template.New() den Basisnamen der ausgeführten Datei erfordert.
Außerdem ist es wichtig, den von Template.Execute zurückgegebenen Fehler zu behandeln (). Fügen Sie eine if-Anweisung hinzu, um etwaige Fehler zu behandeln, die beim Ausführen der Vorlage auftreten können:
if err := t.Execute(os.Stdout, data); err != nil { fmt.Println(err) }
Das obige ist der detaillierte Inhalt vonWie übergebe ich Funktionen korrekt an Golang-Vorlagen und vermeide Fehler „Funktion nicht definiert'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!