Próbuję napisać łańcuch wyglądający w ten sposób za pomocą go systemu szablonów: (p1, p2, p3), gdzie p1, p2, .. pochodzi z tablicy w programie. Mój problem polega na tym, jak prawidłowo wstawić przecinek do ostatniego (lub pierwszego) elementu.Specjalna obróbka przypadku dla ostatniego elementu zakresu w szablonach tekstowych Google Go
Moja non wersja robocza, która wyprowadza (P1, P2, P3) wygląda następująco:
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}})`
Mój najlepszy clue tej pory stwierdzono tu http://golang.org/pkg/text/template/ w następującym stwierdzeniem:
jeśli Operacja "zasięg" inicjuje zmienną, zmienna jest ustawiana na kolejne elementy iteracji. Ponadto, „zakres” może zadeklarować dwie zmienne, oddzielonych przecinkami:
$index, $element := pipeline
w tym przypadku $ indeksu i $ elementem są ustawione na kolejnych wartości tablicy/index plaster lub klucz i elementem map , odpowiednio. Zauważ, że jeśli istnieje tylko jedna zmienna, to jest ona przypisana do elementu; jest to sprzeczne z konwencją w klauzulach Go range. gdzie to sugeruje, że indeks
To sugeruje, że jest to możliwe, aby zdobyć indeks w iteracji, ale po prostu nie może dowiedzieć się, co rozumie się zakres deklarując dwie zmienne i gdzie w szablonie te zmienne powinny zostać zadeklarowane.
Dzięki. To rozwiązało! – Laserallan