Go 模板:1:功能“;版权年“;未定义
以下代码在Go 模板:1:功能“;版权年“;未定义,go,template-engine,Go,Template Engine,以下代码在tmp处出错。执行说明函数“版权年”未定义 import ( "os" "html/template" "fmt" ) func main() { fm := template.FuncMap{ "copyrightYear": func() string { return fmt.Sprintf("%d", time.Now().Year()) }, } tmp := templ
tmp处出错。执行说明函数“版权年”未定义
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)
}
我错过了什么?我翻遍了文件。将其更改为模板中的调用版权年
,或版权年。
无法修复它
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)
}
输出:
2009
template.Funcs()返回的是副本而不是同一个对象吗?@ChristopherPfohl:解析模板时必须已定义函数。另一个顺序是“太晚了”;-)嗯…我想这是有道理的…我必须阅读来源。。。非常感谢。