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中文網其他相關文章!