为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用文本/模板的预定义“调用”功能?

如何使用文本/模板的预定义“调用”功能?

Go
HUWWW 2021-10-18 16:45:28
我试图了解如何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

}


查看完整回答
反对 回复 2021-10-18
  • 2 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信