Heim  >  Artikel  >  Backend-Entwicklung  >  Wie vermeide ich ein Komma nach dem letzten Element in einem Go-Vorlagenbereich?

Wie vermeide ich ein Komma nach dem letzten Element in einem Go-Vorlagenbereich?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-01 07:17:30206Durchsuche

How to Avoid a Comma After the Last Element in a Go Template Range?

Erkennen des letzten Elements in einem Array mithilfe von Bereichen in Go-Vorlagen

In Go-Vorlagen wird beim Durchlaufen eines Arrays mithilfe des Schlüsselworts „range“ automatisch ein Kommatrennzeichen eingefügt zwischen jedem Element. Während dieses Verhalten in den meisten Fällen nützlich ist, kann es zu einem Problem werden, wenn die gewünschte Ausgabe einen Punkt anstelle eines Kommas nach dem letzten Element erfordert.

Betrachten Sie das folgende Programm:

<code class="go">package main

import (
    "os"
    "text/template"
)

func main() {
    params := map[string]interface{}{
        "items": [3]int{1, 4, 2},
    }
    tpl := "{{range $i, $el := .items}}{{$el}},{{end}}"
    lister, _ := template.New("foo").Parse(tpl)
    lister.Execute(os.Stdout, params)
}</code>

Dieses Programm gibt Folgendes aus:

1,4,2,

Beachten Sie, dass nach dem letzten Element (2) ein Komma steht. Allerdings würden wir die Ausgabe wie folgt bevorzugen:

1,4,2.

Um dies zu erreichen, können wir die Vorlage wie folgt ändern:

<code class="go">tpl := "{{range $i, $el := .items}}{{if $i}},{{end}}{{$el}}{{end}}."</code>

Der Hauptunterschied hier ist die Einführung von { {if $i}},{{end}} Konstrukt. Diese bedingte Anweisung prüft, ob die aktuelle Schleifeniteration nicht die erste ist, und gibt in diesem Fall ein Komma aus. Dadurch wird sichergestellt, dass ein Komma nur zwischen Elementen im Array eingefügt wird und nicht nach dem letzten Element.

Durch die Einbeziehung dieser Änderung gibt das Programm nun Folgendes aus:

1,4,2.

Das obige ist der detaillierte Inhalt vonWie vermeide ich ein Komma nach dem letzten Element in einem Go-Vorlagenbereich?. 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