Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyelesaikan Ralat 'fungsi tidak ditakrifkan' Semasa Menghuraikan Templat Go dengan Fungsi Tersuai?

Bagaimana untuk Menyelesaikan Ralat 'fungsi tidak ditakrifkan' Semasa Menghuraikan Templat Go dengan Fungsi Tersuai?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-20 16:57:09337semak imbas

How to Resolve

Menghuraikan Templat dengan Fungsi Tersuai dalam Go

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn