首頁 > 後端開發 > Golang > 如何解決解析帶有自訂函數的 Go 模板時出現'function not Define”錯誤?

如何解決解析帶有自訂函數的 Go 模板時出現'function not Define”錯誤?

Mary-Kate Olsen
發布: 2024-12-20 16:57:09
原創
337 人瀏覽過

How to Resolve

Go 中使用自訂函數解析模板

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 模板時出現'function not Define”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板