Heim >Backend-Entwicklung >Golang >Wie greife ich in Go-Vorlagen auf das Namensfeld des ersten Elements in einem Array zu?

Wie greife ich in Go-Vorlagen auf das Namensfeld des ersten Elements in einem Array zu?

Barbara Streisand
Barbara StreisandOriginal
2024-11-08 11:51:02401Durchsuche

How to Access the Name Field of the First Element in an Array in Go Templates?

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!

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