Maison > développement back-end > Golang > Comment transmettre des modèles de fonctions à emporter ?

Comment transmettre des modèles de fonctions à emporter ?

Patricia Arquette
Libérer: 2024-12-26 13:15:19
original
371 Les gens l'ont consulté

How to Pass Functions to Go Templates?

Modèles Golang : transmission de fonctions aux modèles

Problème :

Lors de la tentative de transmission d'un fonction à un modèle, l'erreur suivante est rencontré :

Error: template: struct.tpl:3: function "makeGoName" not defined
Copier après la connexion

Solution :

Pour résoudre cette erreur, les fonctions personnalisées doivent être enregistrées avant d'analyser les modèles. Les modèles sont conçus pour une analyse statique, exigeant que l'analyseur soit capable de distinguer les noms de fonctions valides des autres identifiants.

Au lieu d'utiliser template.ParseFiles(), utilisez la méthode Template.ParseFiles(), disponible après appelant template.New(). Cette méthode enregistre les fonctions avant d'analyser le modèle.

Code amélioré :

t, err := template.New("struct.tpl").Funcs(template.FuncMap{
    "makeGoName": makeGoName,
    "makeDBName": makeDBName,
}).ParseFiles("templates/struct.tpl")
Copier après la connexion

De plus, la méthode Template.Execute() renvoie une erreur. Pour observer tout problème potentiel avec la génération de sortie, gérez cette erreur :

if err := t.Execute(os.Stdout, data); err != nil {
    fmt.Println(err)
}
Copier après la connexion

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!

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