Zugriff auf den Wert des ersten Index eines Arrays in Go-Vorlagen
Bei der Verwendung von HTML-Vorlagen mit Go kann es zu Situationen kommen, in denen Sie Sie müssen auf den Wert des ersten Index eines Arrays zugreifen. Um dieser Herausforderung zu begegnen, untersuchen wir die richtige Syntax zum Extrahieren der gewünschten Daten.
Der bereitgestellte Codeausschnitt veranschaulicht einen Versuch, auf das Namensfeld des ersten Elements in einem Array innerhalb der Vorlage zuzugreifen:
<div>Foobar {{ index .Doc.Users 0}}'</div>
Dieser Ansatz führt jedoch nicht zum gewünschten Ergebnis, da {{ index .Doc.Users 0}} das gesamte erste Element des Arrays zurückgibt, einschließlich der Felder „Name“ und „E-Mail“. Um nur das Feld „Name“ zu erhalten, müssen Sie den Ausdruck gruppieren und den .Name-Selektor wie folgt anwenden:
<div>Foobar {{ (index .Doc.Users 0).Name }}</div>
In dieser verbesserten Syntax gibt die Indexfunktion das erste Element des Doc.Users-Arrays zurück. das dann in Klammern gesetzt wird, um den Ausdruck zu gruppieren und anschließend Zugriff auf das Feld „Name“ zu ermöglichen.
Für Beispiel:
type User struct { Name string Email string } t := template.Must(template.New("").Parse( `<div>Foobar {{ (index .Doc.Users 0).Name }}</div>`)) m := map[string]interface{}{ "Doc": map[string]interface{}{ "Users": []User{ {Name: "Bob", Email: "user1@example.com"}, {Name: "Alice", Email: "user2@example.com"}, }, }, } fmt.Println(t.Execute(os.Stdout, m))
Ausgabe:
<div>Foobar Bob</div><nil>
Dieser aktualisierte Code erzeugt die gewünschte Ausgabe, wobei das Namensfeld des ersten Elements im Doc.Users-Array erfolgreich innerhalb der Vorlage abgerufen wird .
Das obige ist der detaillierte Inhalt vonWie greife ich in Go-Vorlagen auf das Namensfeld des ersten Elements in einem Array zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!