2016-06-12 6 views

答えて

0

、引数

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

これはコレクションが空でも安全ですか?その構文は私にとって奇妙に見えます! – Blankman

2

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() 
    } 
} 
関連する問題