從 HTML 範本存取 Go 方法
在 Go 中,範本是動態產生 HTML 內容的通用方法。然而,從模板中呼叫方法有時會帶來挑戰。
問題:
考慮以下 Go 結構:
type Person struct { Name string } func (p *Person) Label() string { return "This is " + p.Name }
如何可以從 HTML 範本存取此方法嗎?在範本中,您希望使用類似以下的語法:
{{ .Label() }}
解決方案:
要從Go 範本呼叫方法,只需省略括號即可:
{{ .Label }}
以下Go程式碼示範this:
package main import ( "html/template" "log" "os" ) type Person string func (p Person) Label() string { return "This is " + string(p) } func main() { tmpl, err := template.New("").Parse(`{{.Label}}`) if err != nil { log.Fatalf("Parse: %v", err) } tmpl.Execute(os.Stdout, Person("Bob")) }
輸出:
This is Bob
文件指定您可以呼叫任何傳回一個值或兩個值的方法,前提是第二個值的型別為錯誤。在後一種情況下,如果非 nil,則傳回錯誤,並停止模板執行。
以上是如何從 HTML 模板呼叫 Go 方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!