Heim >Backend-Entwicklung >Golang >Wie übergebe ich mehrere 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.
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 }
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, } }
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}}`
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!