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

I'm trying to understand how to use call function in text/template package. Here is example:

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)
    }

}
see this code in play.golang.org


I thought that call calls functions/methods, but as it turned out we can do it just by .Method arg1 arg2. So what is function call intended for?

You need to use call if you want to call a function value.

To quote the docs (See under Functions):

Thus "call .X.Y 1 2" is, in Go notation, dot.X.Y(1, 2) where Y is a func-valued field, map entry, or the like.

In this example X could look like this:

type X struct {
    Y func(a int, b int) int
}