Sto provando a scrivere una stringa simile a questo usando il sistema di modelli di go: (p1, p2, p3), dove p1, p2, .. viene da un array nel programma. Il mio problema è come posizionare correttamente la virgola per l'ultimo (o il primo) elemento.Trattamento caso speciale per l'ultimo elemento di un intervallo nei modelli di testo di Google Go
La mia versione non funzionante che emette (P1, P2, P3,) si presenta così:
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}})`
mio miglior indizio finora è trovato qui http://golang.org/pkg/text/template/ nella seguente dichiarazione:
Se un L'azione "range" inizializza una variabile, la variabile è impostata sugli elementi successivi dell'iterazione. Inoltre, un "range" può dichiarare due variabili, separati da una virgola:
$index, $element := pipeline
in quale indice caso $ e $ elemento sono impostati ai valori successivi della matrice/indice slice o mappa chiave e dell'elemento , rispettivamente. Si noti che se c'è una sola variabile, viene assegnato l'elemento; questo è opposto alla convenzione nelle clausole della gamma Go. dove è suggerito che l'indice
Questo suggerisce che è possibile entrare in possesso dell'indice nell'iterazione ma proprio non riesco a capire che cosa si intende con la gamma di dichiarare due variabili e dove nel modello le variabili dovrebbero essere dichiarati
Grazie. Questo l'ha risolto! – Laserallan