使用 Golang 範本時,傳遞自訂函數有時會導致錯誤,例如「函數未定義」錯誤。以下是解決此問題並正確實作函數傳遞的方法。
首先,請確保在解析模板之前註冊自訂函數。解析註冊表函數,允許解析器識別它們並將它們與有效標識符區分開來。利用 template.New() 函數建立一個新的、未定義的模板,並呼叫 Template.ParseFiles() 方法來解析模板檔案。例如:
t, err := template.New("struct.tpl").Funcs(template.FuncMap{ "makeGoName": makeGoName, "makeDBName": makeDBName, }).ParseFiles("templates/struct.tpl")
此外,請注意 template.New() 函數需要執行檔案的基本名稱。
此外,處理 Template.Execute 傳回的錯誤至關重要()。新增 if 語句來處理執行範本時可能出現的任何錯誤:
if err := t.Execute(os.Stdout, data); err != nil { fmt.Println(err) }
以上是如何正確地將函數傳遞給Golang模板並避免「函數未定義」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!