Go 得到头部或除切片头部以外的所有东西

Go 得到头部或除切片头部以外的所有东西,go,go-templates,Go,Go Templates,如何在Go模板中获取切片的头部或尾部? 我想使用的是: {{template "breadcrumb" $urlArray[0] $urlArray[1:]}} 您可以使用索引获取切片元素: {{ $length := len $urlArray }} first - {{index $urlArray 0}} 但最后一个更难,因为您必须获取索引$length-1,并且模板中不允许算术运算 但您可以向模板公开go函数: func first(s []string) string { if

如何在Go模板中获取切片的头部或尾部? 我想使用的是:

{{template "breadcrumb" $urlArray[0] $urlArray[1:]}}

您可以使用
索引
获取切片元素:

{{ $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))

在将其发送到模板之前,将其从切片中删除。