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

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-20 16:57:09337瀏覽

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn