Maison >développement back-end >Golang >Comment transmettre des modèles de fonctions à emporter ?
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
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")
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) }
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!