Sonderfallbehandlung für das letzte Element eines Bereichs in den Textvorlagen von Google Go

Ich versuche, eine Zeichenfolge zu schreiben, die mit dem Vorlagensystem von go so aussieht: (p1, p2, p3), wobei p1, p2, ... aus einem Array im Programm stammt. Mein Problem ist, wie man das Komma für das letzte (oder das erste) Element richtig setzt.

Meine nicht funktionierende Version, die ausgibt (p1, p2, p3,) sieht folgendermaßen aus:

package main

import "text/template"
import "os"
func main() { 
    ip := []string{"p1", "p2", "p3"}
    temp := template.New("myTemplate")
    temp,_ = temp.Parse(paramList)
    temp.Execute(os.Stdout, ip)

}

const paramList = 
`{{ $i := . }}({{ range $i }}{{ . }}, {{end}})`

Mein bisher bester Hinweis ist hier zu findenhttp://golang.org/pkg/text/template/ in der folgenden Aussage:

Wenn eine Aktion "range" eine Variable initialisiert, wird die Variable auf die aufeinanderfolgenden Elemente der Iteration gesetzt. Ein "Bereich" kann auch zwei durch Komma getrennte Variablen deklarieren:

$index, $element := pipeline

In diesem Fall werden $ index und $ element auf die aufeinanderfolgenden Werte des Array / Slice-Index bzw. des Zuordnungsschlüssels und des Elements gesetzt. Beachten Sie, dass das Element zugewiesen wird, wenn es nur eine Variable gibt. Dies steht im Gegensatz zur Konvention in Go-Bereichsklauseln. wo wird vorgeschlagen, dass der Index

Dies legt nahe, dass es möglich ist, den Index in der Iteration zu erhalten, aber ich kann nur nicht herausfinden, was mit dem Bereich gemeint ist, der zwei Variablen deklariert und wo in der Vorlage diese Variablen deklariert werden sollen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage