Heim >Backend-Entwicklung >Golang >Wie greife ich in Go-Vorlagen auf den Wert des ersten Index eines Arrays zu?

Wie greife ich in Go-Vorlagen auf den Wert des ersten Index eines Arrays zu?

Susan Sarandon
Susan SarandonOriginal
2024-11-07 06:15:03244Durchsuche

How to Access the Value of the First Index of an Array in Go Templates?

Zugriff auf den Wert des ersten Index eines Arrays in Go-Vorlagen

Bei der Arbeit mit HTML-Vorlagen in Go kann es zu einer Herausforderung kommen des Zugriffs auf den Wert des ersten Index eines in die Vorlage eingebetteten Arrays. Betrachten Sie den folgenden Vorlagencode:

<div>Foobar {{ index .Doc.Users 0 }}</div>

Hier möchten Sie den Wert des Felds „Name“ für das erste Element im Slice „Doc.Users“ erhalten. Mehrere Versuche mit unterschiedlicher Syntax waren jedoch erfolglos.

Die korrekte Syntax zum Abrufen des Felds „Name“ des ersten Elements im Array „Doc.Users“ lautet:

<div>Foobar {{ (index .Doc.Users 0).Name }}</div>

Um diese Syntax zu verstehen, brechen wir sie auf:

  • index .Doc.Users 0: Dieser Teil ruft das erste Element aus dem Slice „Doc.Users“ ab.
  • (index . Doc.Users 0): Dies klammert das Ergebnis des vorherigen Ausdrucks ein und behandelt es als einen einzelnen Wert.
  • .Name: Dieser Selektor greift auf das Feld „Name“ des aus dem vorherigen Ausdruck erhaltenen Werts zu.

Durch Gruppieren des Ausdrucks und Anwenden des Selektors können Sie effektiv auf das gewünschte Feld „Name“ zugreifen.

Hier ist ein Beispielcode, den Sie ausführen können, um diese Lösung zu testen:

package main

import (
    "fmt"
    "html/template"
    "os"
)

type User struct {
    Name  string
    Email string
}

func main() {
    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: "[email protected]"},
                {Name: "Alice", Email: "[email protected]"},
            },
        },
    }

    fmt.Println(t.Execute(os.Stdout, m))
}

Dieser Code erzeugt die folgende Ausgabe, die den erfolgreichen Zugriff auf das Feld „Name“ des ersten Benutzers im Slice „Doc.Users“ demonstriert:

<div>Foobar Bob</div>

Das obige ist der detaillierte Inhalt vonWie greife ich in Go-Vorlagen auf den Wert des ersten Index eines Arrays 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