以下在tmp.Execute
上的代码恐慌说function "copyrightYear" not defined
import (
"os"
"html/template"
"fmt"
)
func main() {
fm := template.FuncMap{
"copyrightYear": func() string {
return fmt.Sprintf("%d", time.Now().Year())
},
}
tmp := template.Must(template.New("").Parse("{{copyrightYear}}")).Funcs(fm)
tmp.Execute(os.Stdout, nil)
}
我想念什么?我仔细阅读了文档。在模板中将其更改为
call copyrightYear
或copyrightYear .
不能修复它。 最佳答案
package main
import (
"fmt"
"html/template"
"os"
"time"
)
func main() {
fm := template.FuncMap{
"copyrightYear": func() string {
return fmt.Sprintf("%d", time.Now().Year())
},
}
tmp := template.Must(template.New("").Funcs(fm).Parse("{{copyrightYear}}"))
tmp.Execute(os.Stdout, nil)
}
Playground
输出:
2009