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

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

Barbara Streisand
Barbara StreisandOriginal
2024-12-25 05:59:12710Durchsuche

How to Call Go Methods from Within HTML Templates?

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!

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