Maison >développement back-end >Golang >Comment résoudre les erreurs « fonction non définie » lors de l'analyse des modèles Go avec des fonctions personnalisées ?

Comment résoudre les erreurs « fonction non définie » lors de l'analyse des modèles Go avec des fonctions personnalisées ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-20 16:57:09337parcourir

How to Resolve

Analyse des modèles avec des fonctions personnalisées dans Go

Les fonctions personnalisées doivent être enregistrées avant d'analyser les modèles dans Go. Lorsque vous tentez d'accéder à une fonction non enregistrée, vous pouvez rencontrer une erreur telle que :

Error: template: struct.tpl:3: function "makeGoName" not defined

Pour résoudre ce problème, créez un nouveau modèle non défini à l'aide de template.New(). Le type template.Template renvoyé par template.New() a une méthode Template.ParseFiles() qui doit être utilisée à la place de template.ParseFiles().

Voici un exemple :

t, err := template.New("struct.tpl").Funcs(template.FuncMap{
    "makeGoName": makeGoName,
    "makeDBName": makeDBName,
}).ParseFiles("templates/struct.tpl")

Lorsque vous utilisez template.ParseFiles(), vous devez spécifier le nom de base du fichier en cours d'exécution dans template.New().

Rappelez-vous, Template.Execute() renvoie également une erreur. Si aucune sortie n'est générée, imprimez l'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!

Déclaration:
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