Maison > Article > développement back-end > Comment puis-je capturer la sortie du modèle Go dans une variable au lieu de l'imprimer sur STDOUT ?
Réaffectation de la sortie du modèle à une variable
Dans Go, les modèles constituent un moyen pratique de générer une sortie personnalisée. Par défaut, la sortie est imprimée sur la sortie standard (STDOUT) à l'aide de t.Execute(os.Stdout, xxx). Cependant, il peut y avoir des cas où vous préférez attribuer la sortie à une variable.
Pour ce faire, il est essentiel de se rappeler que t.Execute attend une entrée qui implémente l'interface io.Writer. Une option appropriée consiste à utiliser un tampon, tel qu'un bytes.Buffer ou un string.Builder.
Utilisation d'un bytes.Buffer :
var tpl bytes.Buffer if err := t.Execute(&tpl, data); err != nil { return err } result := tpl.String()
Ce code crée un bytes.Buffer et transmet son adresse à t.Execute. Si l'exécution du modèle réussit, la sortie est stockée dans le tampon, qui peut ensuite être récupérée sous forme de chaîne à l'aide de tpl.String().
À l'aide d'un strings.Builder :
builder := &strings.Builder{} if err := t.Execute(builder, data); err != nil { return err } result := builder.String()
Le strings.Builder propose une alternative plus spécialisée. Semblable à l'approche précédente, le constructeur est transmis à t.Execute en tant que io.Writer et la sortie est collectée dans le constructeur. La méthode builder.String() peut ensuite être utilisée pour récupérer la sortie sous forme de chaîne.
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!