Wie greife ich in Vorlagen auf das letzte Element eines Go-Slices zu?

Patricia Arquette
Freigeben: 2024-11-19 16:22:03
Original
684 Leute haben es durchsucht

How to Access the Last Element of a Go Slice in Templates?

Zugriff auf das letzte Element eines Slice in Go-Vorlagen

Das Abrufen des letzten Elements eines Slice in einer Go-Vorlage kann aus folgenden Gründen eine Herausforderung sein die in Vorlagen verwendete nullbasierte Indizierung. Während es einfach ist, die Slice-Größe zu ermitteln und einzelne Elemente zu indizieren, führt die Referenzierung des letzten Elements allein anhand der Größe zu einem „Außerhalb des Bereichs“-Fehlers.

Verwendung von FuncMaps für arithmetische Operationen

Um diese Einschränkung zu überwinden, ohne auf benutzerdefinierte Funktionsdefinitionen zurückgreifen zu müssen, kann man FuncMaps nutzen, um benutzerdefinierte Funktionen in den Vorlagenrenderingprozess einzuführen. Beispielsweise kann eine „Hinzufügen“-Funktion wie folgt definiert werden:

t := template.Must(template.New("").Funcs(template.FuncMap{
    "add": func(a, b int) int { return a + b },
}).Parse(theTemplate)
Nach dem Login kopieren

Einsatz der benutzerdefinierten Funktion

Mit der in der FuncMap verfügbaren „Hinzufügen“-Funktion Sie können wie folgt auf das letzte Element des Slice zugreifen:

{{index .Things (add $size -1)}}
Nach dem Login kopieren

Dieser Ausdruck subtrahiert effektiv eins von der Slice-Größe, sodass Sie das letzte Element indizieren können, ohne einen Fehler außerhalb des Bereichs auszulösen.

Das obige ist der detaillierte Inhalt vonWie greife ich in Vorlagen auf das letzte Element eines Go-Slices zu?. 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