Golang templates: comment définir un tableau dans une variable?

quelle serait la syntaxe correcte pour définir une variable de tableau à l'intérieur d'un modèle go ? (voici un modèle HTML). Voici ce que j'ai essayé :

{{define "template"}}
    {{ $x:=[]int{0,1,2} }}{{$x[0]}}
{{end}}

le journal des erreurs dit:unexpected "[" in command

Merci.

8
demandé sur Yves M. 2014-07-29 13:48:14

2 réponses

il n'y a pas de façon intégrée de faire ce que vous voulez accomplir. Voir le arguments sur ce que vous pouvez faire avec les arguments et le pipeline.

Mais vous pouvez facilement définir votre propre fonction pour atteindre votre objectif:

package main

import (
    "html/template"
    "os"
)

func main() {
tmpl := `
{{ $slice := mkSlice "a" 5 "b" }}
{{ range $slice }}
     {{ . }}
{{ end }}
`
    funcMap := map[string]interface{}{"mkSlice": mkSlice}
    t := template.New("demo").Funcs(template.FuncMap(funcMap))
    template.Must(t.Parse(tmpl))
    t.ExecuteTemplate(os.Stdout, "demo", nil)
}

func mkSlice(args ...interface{}) []interface{} {
    return args
}

aire de jeux.

9
répondu seong 2014-07-29 10:28:26

map ou array type n'est pas pris en charge, mais je passe l' map ou array variable du controller au template, puis utilisez {{index .Varible KEY}} pour obtenir l' map ou array valeur pour avancer. voulez que cela pourrait vous aider.

1
répondu touchstone 2017-06-01 06:42:35