Maison > développement back-end > Golang > Comment capturer la sortie du modèle Go dans une variable ?

Comment capturer la sortie du modèle Go dans une variable ?

Susan Sarandon
Libérer: 2024-12-23 04:47:15
original
716 Les gens l'ont consulté

How to Capture Go Template Output into a Variable?

Capturer la sortie d'un modèle dans Go

Dans un modèle Go, il est impossible d'attribuer directement une sortie de modèle à une variable en utilisant la syntaxe {$ var := modèle}. Au lieu de cela, il est nécessaire d'enregistrer une fonction personnalisée pour capturer la sortie du modèle.

Enregistrement de fonction

Pour enregistrer une fonction, utilisez la fonction Template.Funcs(). Il vous permet de définir un ensemble de fonctions qui peuvent être utilisées dans votre modèle.

Exécution du modèle

Pour exécuter un modèle nommé et capturer sa sortie, utilisez Modèle. ExécuterTemplate(). Cette fonction prend un tampon comme cible, vous permettant d'écrire directement la sortie du modèle dans le tampon.

Exemple

Voici un exemple qui démontre l'utilisation d'un tampon enregistré. fonction pour capturer le modèle sortie :

package main

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

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 {
        panic(err)
    }
}

const tmpl = `{{define "my-template"}}my-template content{{end}}
See result:
{{$var := execTempl "my-template"}}
{{$var}}
`
Copier après la connexion

Sortie :

See result:

my-template content
Copier après la connexion

Dans cet exemple, la fonction execTempl() est enregistrée et utilisée dans le modèle pour exécuter le "my- template" et capturez sa sortie, qui est ensuite affectée à la variable de modèle $var et affichée dans la sortie.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal