Fungsi tersuai perlu didaftarkan sebelum menghuraikan templat dalam Go. Apabila cuba mengakses fungsi tidak berdaftar, anda mungkin menghadapi ralat seperti:
Error: template: struct.tpl:3: function "makeGoName" not defined
Untuk menyelesaikan isu ini, cipta templat baharu yang tidak ditentukan menggunakan templat.New(). Jenis templat.Templat dikembalikan oleh templat.New() mempunyai kaedah Templat.ParseFiles() yang harus digunakan dan bukannya templat.ParseFiles().
Berikut ialah contoh:
t, err := template.New("struct.tpl").Funcs(template.FuncMap{ "makeGoName": makeGoName, "makeDBName": makeDBName, }).ParseFiles("templates/struct.tpl")
Apabila menggunakan template.ParseFiles(), anda mesti menentukan nama asas fail yang sedang dilaksanakan dalam template.New().
Ingat, Template.Execute() juga mengembalikan ralat. Jika tiada output dijana, cetak ralat:
if err := t.Execute(os.Stdout, data); err != nil { fmt.Println(err) }
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'fungsi tidak ditakrifkan' Semasa Menghuraikan Templat Go dengan Fungsi Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!