J'essaie de réaliser une chose très simple dans un modèle Go et échoue!
L'action range
me permet de parcourir un tableau avec son index de base zéro, comme suit:
{{range $index, $element := .Pages}}
Number: {{$index}}, Text: {{element}}
{{end}}
Cependant, j'essaie de générer des indices qui commencent à compter à partir de 1. Ma première tentative a échoué:
Number: {{$index + 1}}
Cela jette un illegal number syntax: "+"
Erreur.
J'ai regardé dans la documentation officielle de go-lang et je n'ai rien trouvé de particulier concernant l'opération arithmétique à l'intérieur du modèle.
Qu'est-ce que je rate?
Vous devez écrire une fonction personnalisée pour ce faire.
http://play.golang.org/p/WsSakENaC
package main
import (
"os"
"text/template"
)
func main() {
funcMap := template.FuncMap{
// The name "inc" is what the function will be called in the template text.
"inc": func(i int) int {
return i + 1
},
}
var strs []string
strs = append(strs, "test1")
strs = append(strs, "test2")
tmpl, err := template.New("test").Funcs(funcMap).Parse(`{{range $index, $element := .}}
Number: {{inc $index}}, Text:{{$element}}
{{end}}`)
if err != nil {
panic(err)
}
err = tmpl.Execute(os.Stdout, strs)
if err != nil {
panic(err)
}
}
S'il vous arrive d'écrire un modèle Go à utiliser dans consul-template
, vous pouvez trouver leurs --- fonctions arithmétiques utiles:
Number: {{add $index 1}}