从 Go 模板调用方法
在 Go 中,你可以为自定义类型定义方法,让你可以更方便地操作这些类型。有组织的方式。使用 HTML 模板时,从模板本身访问这些方法通常很有用。
问题:
考虑以下内容:
type Person struct { Name string } func (p *Person) Label() string { return "This is " + p.Name }
如何在 HTML 中使用 Label() 方法template?
答案:
要从 Go 模板调用方法,只需省略括号即可。在这种情况下,模板将如下所示:
{{ .Label }}
这将调用 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")) }
附加说明:
根据Go 文档中,任何返回任意类型的一个值或两个值(第二个为错误类型)的方法都可以从模板调用。
以上是如何从 HTML 模板调用 Go 方法?的详细内容。更多信息请关注PHP中文网其他相关文章!