Heim >Backend-Entwicklung >Golang >Wie entferne ich abschließende Kommas in Go-Vorlagenbereichsschleifen ohne benutzerdefinierte Funktionen?

Wie entferne ich abschließende Kommas in Go-Vorlagenbereichsschleifen ohne benutzerdefinierte Funktionen?

DDD
DDDOriginal
2024-12-07 18:26:13771Durchsuche

How to Remove Trailing Commas in Go Template Range Loops Without Custom Functions?

Entfernen von Kommas in Range-Loop-Vorlagen mit Go

In Go-Vorlagenschleifen erscheint oft nach jeder Iteration ein Komma, das die Ausgabe trennt. Zum Beispiel:

key:a value:b, key:c value:d,

Um dieses Komma zu eliminieren, wird nach einer Lösung gesucht, die keine benutzerdefinierten Funktionen verwendet.

Antwort:

Wie Ab Go 1.11 ist es möglich, Vorlagenvariablen direkt zu ändern. Dies ermöglicht die Entfernung von Kommas durch die folgende Vorlage:

{{$first := true}}
{{range $key, $value := $}}
    {{if $first}}
        {{$first = false}}
    {{else}}
        ,
    {{end}}
    key:{{$key}} value:{{$value}}
{{end}}

Innerhalb dieser Vorlage wird eine Variable $first auf „true“ initialisiert. Während der Schleife wird geprüft, ob dies die erste Iteration ist, und wenn ja, wird $first auf „false“ gesetzt, um Kommas bei nachfolgenden Iterationen zu verhindern.

Beispiel:

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)

Ausgabe:

key:a value:b, key:c value:d, key:e value:f

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