2016-06-12 2 views

답변

0

, 인수

{{index .Users 0}} 
<div> 
    {{.Name}} 
</div> 
{{end}} 
+0

그래서이 컬렉션이 비어있는 경우에도 안전 할 수있는? 그 구문은 이상하게 보입니다! – Blankman

2

두 솔루션 index을 제공; 중 하나를 반복 할 때 인덱스가 0인지 확인 :

{{range $index, $element := . }}{{if eq $index 0 -}} 
Item: {{$element}} 
{{end}}{{end -}} 

을 아니면 조각을 취하고 길이 여기에 1

{{range first .}} 
Item: {{.}} 
{{end}} 

로 자르는 "최초의"함수를 정의 할 수있는 것은 모두 보여 전체 코드입니다 , 당신은 또한 try on the playground.

package main 

import (
    "fmt" 
    "os" 
    "text/template" 
) 

var t = template.Must(template.New("x").Parse(
    "[{{range $index, $element := . }}{{if eq $index 0 -}}{{$element}}{{end}}{{end -}}]")) 

var funcs = map[string]interface{}{ 
    "first": func(arg []string) []string { 
     if len(arg) > 0 { 
      return arg[:1] 
     } 
     return nil 
    }, 
} 

var t2 = template.Must(template.New("x").Funcs(funcs).Parse(
    "[{{range first . }}{{.}}{{end -}}]")) 

func main() { 
    tmpls := []*template.Template{t, t2} 
    for i, t := range tmpls { 
     fmt.Println("TEMPLATE", i) 
     a := []string{"one", "two", "three"} 
     for j := 0; j < len(a); j++ { 
      fmt.Println("with input slice of length", j) 
      t.Execute(os.Stdout, a[:j]) 
      fmt.Println() 
     } 
     fmt.Println() 
    } 
}