Heim >Backend-Entwicklung >Golang >Wie rufe ich benutzerdefinierte Methoden aus Go-HTML-Vorlagen auf?

Wie rufe ich benutzerdefinierte Methoden aus Go-HTML-Vorlagen auf?

Barbara Streisand
Barbara StreisandOriginal
2024-12-14 10:18:12142Durchsuche

How Do I Call Custom Methods from Go HTML Templates?

Methoden aus Go-Vorlagen aufrufen

In Go können Sie benutzerdefinierte Methoden für Datentypen definieren. Wie ruft man diese Methoden aus einer HTML-Vorlage in Go auf?

Betrachten Sie das folgende Beispiel:

type Person struct {
  Name string
}
func (p *Person) Label() string {
  return "This is " + p.Name
}

Um die Label-Methode aus einer Vorlage aufzurufen, verwenden Sie die folgende Syntax:

{{ .Label }}

Beachten Sie, dass Sie die Klammern weglassen, wenn Sie die Methode aufrufen.

Hier ist ein vollständiges Go-Programm, das die Verwendung von demonstriert Methodenaufrufe in Vorlagen:

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"))
}

Wenn Sie dieses Programm ausführen, wird Folgendes ausgegeben:

This is Bob

Gemäß der Go-Vorlagendokumentation können Sie jede Methode aufrufen, die einen Wert zurückgibt ( eines beliebigen Typs) oder zwei Werte, wenn der zweite vom Typ Fehler ist. Wenn der zweite zurückgegebene Wert ein Fehler ist, gibt die Execute-Funktion diesen Fehler als ungleich Null zurück und bricht die Ausführung der Vorlage ab.

Das obige ist der detaillierte Inhalt vonWie rufe ich benutzerdefinierte Methoden aus Go-HTML-Vorlagen auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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