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}}
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)
Diese Vorlage gibt Folgendes aus:
key:a value:b, key:c value:d, key:e value:f
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!