Golang模板的“减”功能

I know that in go templates I can call function named add for expression like 1 + 1. But how named function for expression like 2 - 1?

You could always define such a function:

package main

import (
    "html/template"
    "net/http"
    "strconv"
)

var funcMap = template.FuncMap{
    "minus": minus,
}

const tmpl = `
<html><body>
    <div>
        <span>{{minus 1 2}}</span>
    </div>
</body></html>`

var tmplGet = template.Must(template.New("").Funcs(funcMap).Parse(tmpl))

func minus(a, b int64) string {
    return strconv.FormatInt(a-b, 10)
}

func getPageHandler(w http.ResponseWriter, r *http.Request) {

    if err := tmplGet.Execute(w, nil); err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
    }
}

func main() {
    http.HandleFunc("/", getPageHandler)
    http.ListenAndServe(":8080", nil)
}

There is no add function included by default. You can however, easily write such functions yourself. For example:

tmpl := template.Must(template.New("").Funcs(template.FuncMap{
    "minus": func(a, b int) int {
        return a - b
    },
}).Parse("{{ minus 5 2 }}"))
tmpl.Execute(os.Stdout, nil)