我试图了解如何call在text/template包中使用函数。这是示例:type Human struct { Name string}func (h *Human) Say(str string) string { return str}func main() { const letter = ` {{.Name}} wants to say {{"blabla" | .Say}} {{.Name}} wants try again, {{call .Say "blabla"}}.` var h = &Human{"Tim"} t := template.Must(template.New("").Parse(letter)) err := t.Execute(os.Stdout, h) if err != nil { log.Println("executing template:", err) }}我认为call调用函数/方法,但事实证明我们可以通过.Method arg1 arg2. 那么函数的call目的是什么?
2 回答
慕斯王
TA贡献1864条经验 获得超2个赞
call如果要调用函数值,则需要使用。
引用文档(参见函数下):
因此,“调用 .XY 1 2”在 Go 符号中是 dot.XY(1, 2),其中 Y 是一个函数值字段、映射条目等。
在这个例子中X可能是这样的:
type X struct {
Y func(a int, b int) int
}
- 2 回答
- 0 关注
- 173 浏览
添加回答
举报
0/150
提交
取消