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)
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)}}
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!