Heim > Backend-Entwicklung > Golang > Wie entferne ich das abschließende Komma in Go-Vorlagenbereichsschleifen?

Wie entferne ich das abschließende Komma in Go-Vorlagenbereichsschleifen?

Barbara Streisand
Freigeben: 2024-12-09 17:19:09
Original
403 Leute haben es durchsucht

How to Remove the Trailing Comma in Go Template Range Loops?

Go-Vorlage: Entfernen des letzten Kommas in einer Bereichsschleife

In Go-Vorlagen wird beim Durchlaufen einer Reihe von Elementen ein Komma verwendet automatisch nach jedem Element angehängt. Dies kann in bestimmten Szenarien unerwünscht sein, beispielsweise beim Generieren einer Werteliste ohne das abschließende Komma.

Eine Möglichkeit, das letzte Komma zu entfernen, besteht darin, während der Bereichsschleife auf den Index des Elements zuzugreifen. Dieser Ansatz ist jedoch nicht auf Karten anwendbar, da diese keinen Index für ihre Elemente bereitstellen.

Lösung mit Go 1.11

Seit Go 1.11 ist dies möglich Ändern Sie die Werte von Vorlagenvariablen innerhalb der Vorlage selbst. Dies ermöglicht das Entfernen des letzten Kommas mit der folgenden Vorlage:

{{$first := true}}
{{range $key, $value := $}}
    {{if $first}}
        {{$first = false}}
    {{else}}
        ,
    {{end}}
    key:{{$key}} value:{{$value}}
{{end}}
Nach dem Login kopieren

Die Vorlage definiert eine Variable $first, die anfänglich auf true gesetzt ist. Wenn $first während der Bereichsschleife „true“ ist, wird es auf „false“ gesetzt und es wird kein Komma hinzugefügt. Bei allen nachfolgenden Iterationen wird vor dem Element ein Komma hinzugefügt.

Geändertes Beispiel

Hier ist eine aktualisierte Version des Beispiels aus der Frage, bei der das letzte Komma mithilfe von entfernt wird obige Technik:

type Map map[string]string
m := Map{
    "a": "b",
    "c": "d",
    "e": "f",
}
const temp = `{{$first := true}}{{range $key, $value := $}}{{if $first}}{{$first = false}}{{else}}, {{end}}key:{{$key}} value:{{$value}}{{end}}`
t := template.Must(template.New("example").Parse(temp))
t.Execute(os.Stdout, m)
Nach dem Login kopieren

Diese Vorlage gibt Folgendes aus:

key:a value:b, key:c value:d, key:e value:f
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie entferne ich das abschließende Komma in Go-Vorlagenbereichsschleifen?. 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