jeden z predefiniowanych global template functions jest index
.
Powoduje zwrócenie wyniku pierwszego argumentu indeksowania według następujących argumentów: . Tak więc index x 1 2 3
jest w składni Go, x[1][2][3]
. Każda pozycja indeksowana musi być map
, slice
lub array
.
Jesteś na dobrej drodze. Jedynym problemem jest to, że nie uwzględniasz faktu, że dot
został ponownie przypisany w bloku range
.
Więc trzeba wrócić do pierwotnego punktu, na który mamy następujące
Kiedy zaczyna wykonanie, $
ustawiony jest przekazywane do wykonania, czyli do wartości początkowej argumentu danych kropka.
Tak (zakładając, że nie ma nic innego dzieje się w szablonie) powinien być w stanie zrobić:
{{range $i, $e := .First}}$e - {{index $.Second $i}}{{end}}
Osobiście jednak chciałbym utworzyć funkcję szablonu o nazwie zip
który akceptuje wiele plasterków i zwraca kawałek każdej pary wartości. Będzie wyglądać czysto w twoim szablonie i prawdopodobnie zostanie ponownie wykorzystany.