Maison >développement back-end >Golang >Comment capturer la sortie du modèle Go et l'attribuer à une variable ?
Dans un modèle Go, l'objectif est d'émuler les éléments suivants :
{{$var := template "my-template"}}
Cependant, cette approche entraîne l'erreur " inattendu dans opérande."
Go ne fournit pas de méthode intégrée pour capturer les résultats de l'exécution du modèle. Au lieu de cela, enregistrez une fonction qui effectue cette tâche.
Utilisez la fonction Template.Funcs() pour enregistrer les fonctions. Exécutez les modèles nommés avec Template.ExecuteTemplate() et utilisez un bytes.Buffer comme cible pour capturer le résultat de l'exécution directe du modèle dans un tampon.
package main import ( "bytes" "html/template" "log" "os" ) var t *template.Template func execTempl(name string) (string, error) { buf := &bytes.Buffer{} err := t.ExecuteTemplate(buf, name, nil) return buf.String(), err } func main() { t = template.Must(template.New("").Funcs(template.FuncMap{ "execTempl": execTempl, }).Parse(tmpl)) if err := t.Execute(os.Stdout, nil); err != nil { log.Fatal(err) } } const tmpl = `{{define "my-template"}}my-template content{{end}} See result: {{$var := execTempl "my-template"}} {{$var}} `
Exécutez le modèle "my-template" à l'aide de la fonction execTempl() enregistrée. Stockez le résultat dans la variable de modèle $var, qui peut ensuite être ajoutée à la sortie ou transmise à d'autres fonctions.
See result: my-template content
Notez que la sortie capture le résultat du " "my-template" et l'affiche dans le modèle principal.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!