考慮以下程式碼:
type Person struct { Name string } func (p *Person) Label() string { return "This is " + p.Name }
要在HTML 範本中使用此方法,您需要通常期望的語法類似以下:
{{ .Label() }}
但是,在Go模板中,括號可以省略:
{{ .Label }}
例如,給出以下程式碼:
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
依照Go在模板在文件中,您可以呼叫傳回單一值或兩個值的任何方法,其中第二個值是錯誤。如果該方法傳回錯誤,Execute 將傳回錯誤並停止模板執行。
以上是如何從模板中呼叫 Go 方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!