Вы можете получить элемент среза, используя index
:
{{ $length := len $urlArray }}
first - {{index $urlArray 0}}
Но с последним сложнее, так как вы должны получить индекс $length - 1
, а арифметические операции в шаблонах запрещены.
Но вы можете выставить функции go для шаблонов:
func first(s []string) string {
if len(s) == 0 {
return ""
}
return s[0]
}
func last(s []string) string {
if len(s) == 0 {
return ""
}
return s[len(s) - 1]
}
const tmpl = `first - {{ first $urlArray }}, last - {{ last $urlArray }}`
t := template.Must(template.New("").Funcs(template.FuncMap{"first": first, "last": last}).Parse(tmpl))