Das letzte Element eines Slice in einer Go-Vorlage abrufen
Frage:
In Bei einer Go-Vorlage ist es möglich, die Größe eines Slice mithilfe von len .Things zu ermitteln und es mithilfe von index .Things 4 zu indizieren. Beim Versuch, das letzte Element mithilfe von index .Things $size zu indizieren, wird jedoch ein Fehler angezeigt, da die Indizierung auf Null basiert. Gibt es eine arithmetische Lösung, ohne auf benutzerdefinierte Funktionsdefinitionen zurückzugreifen?
Antwort:
Obwohl Go-Vorlagen nativ keine arithmetischen Operationen bieten, können Sie ihre Funktionalität mithilfe von erweitern FuncMap. So fügen Sie eine „Add“-Funktion hinzu:
t := template.Must(template.New("").Funcs(template.FuncMap{ "add": func(a, b int) int { return a + b }, }).Parse(theTemplate)
Diese Funktion nimmt zwei Ganzzahlen und gibt deren Summe zurück. In der Vorlage kann es wie folgt verwendet werden:
{{index .Things (add $size -1)}}
Dadurch wird das Element mit Index $size - 1 zurückgegeben, wodurch effektiv das letzte Element des Slice abgerufen wird.
Das obige ist der detaillierte Inhalt vonWie kann ich ohne benutzerdefinierte Funktionen auf das letzte Element eines Go-Slice in einer Vorlage zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!