Go でテンプレートを解析する前に、カスタム関数を登録する必要があります。未登録の関数にアクセスしようとすると、次のようなエラーが発生することがあります。
Error: template: struct.tpl:3: function "makeGoName" not defined
この問題を解決するには、template.New() を使用して新しい未定義のテンプレートを作成します。 template.New() によって返される template.Template 型には、template.ParseFiles() の代わりに使用する必要がある Template.ParseFiles() メソッドがあります。
次に例を示します:
t, err := template.New("struct.tpl").Funcs(template.FuncMap{ "makeGoName": makeGoName, "makeDBName": makeDBName, }).ParseFiles("templates/struct.tpl")
template.ParseFiles()を使用する場合、実行されるファイルのベース名を指定する必要があります。 template.New().
Template.Execute() もエラーを返すことに注意してください。出力が生成されない場合は、エラーを出力します:
if err := t.Execute(os.Stdout, data); err != nil { fmt.Println(err) }
以上がカスタム関数を含む Go テンプレートを解析するときに発生する「関数が定義されていません」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。