Heim > Backend-Entwicklung > Golang > Wie übergebe ich mehrere Werte zwischen Go-Vorlagen?

Wie übergebe ich mehrere Werte zwischen Go-Vorlagen?

Linda Hamilton
Freigeben: 2024-12-04 16:33:10
Original
363 Leute haben es durchsucht

How to Pass Multiple Values Between Go Templates?

Übergabe mehrerer Werte zwischen Go-Vorlagen

Beim Arbeiten mit Go-Vorlagen kann es erforderlich sein, mehrere Werte zwischen Vorlagen zu übergeben. Die Aktion {{template}} des Pakets text/template unterstützt jedoch nur die Übergabe eines einzelnen optionalen Datenwerts. Dies wirft die Frage auf, wie mehrere Datenelemente effektiv übertragen werden können. Ein Ansatz besteht darin, die Daten in einem einzigen Wert zu konsolidieren. Go bietet zwei Optionen: die Daten in eine Struktur einschließen oder eine Karte verwenden.

Einbinden in eine Struktur

Eine Methode besteht darin, eine Struktur zu erstellen, die die Daten kapselt, die Sie übertragen möchten. Diese Struktur kann dann an die Vorlage übergeben und mit der Punktnotation verwendet werden, um auf die einzelnen Datenelemente innerhalb der Vorlage zuzugreifen. Hier ist ein Beispiel:

type DataWrapper struct {
    Shops      []Destination
    CityName   string
    RegionName string
}
Nach dem Login kopieren

Einpacken in eine Karte

Wenn die Verwendung einer Struktur unpraktisch ist, können Sie die Daten auch in eine einfache Karte einbinden. Die Kartenschlüssel stellen die Datenelementnamen dar und die Kartenwerte sind die tatsächlichen Datenwerte. Hier ist ein Beispiel:

func Wrap(shops []Destination, cityName, regionName string) map[string]interface{} {
    return map[string]interface{}{
        "Shops":      shops,
        "CityName":   cityName,
        "RegionName": regionName,
    }
}
Nach dem Login kopieren

Integration mit benutzerdefinierten Funktionen

Sobald Sie Ihre Daten in eine Struktur oder Karte verpackt haben, können Sie eine benutzerdefinierte Funktion verwenden, um diese Daten an die Vorlage zu übergeben. Benutzerdefinierte Funktionen können mit der Methode Template.Funcs() registriert werden, und Sie müssen dies tun, bevor Sie den Vorlagentext analysieren. Hier ist ein Beispiel für die Verwendung einer benutzerdefinierten Funktion zum Übergeben von Daten:

const src = `
{{define "data"}}
    City: {{.CityName}}, Region: {{.RegionName}}, Shops: {{.Shops}}
{{end}}
{{- range . -}}
        {{$city:=.Name}}
        {{- range .Regions -}}
              {{$region:=.Name}}
              {{- template "data" (Wrap .Shops $city $region) -}}
        {{end}}
{{- end}}`
Nach dem Login kopieren

Fazit

Indem Sie Ihre Daten in einen einzigen Wert strukturieren und benutzerdefinierte Funktionen verwenden, können Sie effektiv mehrere Werte zwischen Go-Vorlagen übergeben . Dadurch können Sie komplexe Datenstrukturen effizient zwischen verschiedenen Teilen Ihrer Vorlagen teilen und so die Flexibilität und Wartbarkeit Ihrer Go-Webanwendungen verbessern.

Das obige ist der detaillierte Inhalt vonWie übergebe ich mehrere Werte zwischen Go-Vorlagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage