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
Barbara StreisandOriginal
2024-12-09 17:19:09440Durchsuche

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

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!

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