Wenn die Liste nicht leer ist, gibt das Python-Snippet ein Semikolon nach dem letzten Element aus. Sie können das gleiche Ergebnis in Go erzielen, indem Sie den Bereich mit einem if-Element umgeben, um zu prüfen, ob mindestens ein Element in der Scheibe vorhanden ist, und zu drucken; außerhalb der Schleife.
{{if $hosts}}{{range $host := $hosts}}
{{$host}}
{{ end }} ;{{end}}
Dieses Snippet funktioniert, weil Sie an das Ende des letzten Elements hinzufügen. Eine allgemeinere Lösung erfordert eine benutzerdefinierte Vorlagenfunktion. Hier ist ein Beispiel Funktion:
func last(v interface{}, i int) (bool, error) {
rv := reflect.ValueOf(v)
if rv.Kind() != reflect.Slice {
return false, errors.New("not a slice")
}
return rv.Len()-1 == i, nil
}
und hier ist, wie es in der Vorlage zu verwenden:
{{range $i, $host := $hosts }}
{{$host}}{{if last $hosts $i}} ;{{end}}
{{ end }}
ich ein a working example of the custom function auf den Spielplatz geschrieben.