Heim >Backend-Entwicklung >Golang >Wie kann ich ohne benutzerdefinierte Funktionen auf das letzte Element eines Go-Slice in einer Vorlage zugreifen?

Wie kann ich ohne benutzerdefinierte Funktionen auf das letzte Element eines Go-Slice in einer Vorlage zugreifen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-19 11:01:03599Durchsuche

How Can I Access the Last Element of a Go Slice in a Template Without Custom Functions?

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!

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