假设我有
type Person struct { Name string } func (p *Person) Label() string { return "This is " + p.Name }
如何从html / template使用此方法?我的模板中需要这样的东西:
{{ .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")) }
根据文档,您可以调用任何返回一个值(任何类型)或两个值(如果第二个是type)的方法error。在后一种情况下,Execute如果该错误为非nil ,则将返回该错误并停止执行模板。
error
Execute