在编译时解析模板

时间:2013-02-11 10:09:52

标签: go

根据我的理解,go模板在运行时从给定的源解析,以获得类型template.Template的编译版本。然后,对某些数据执行编译版本以进行实际模板化。

但后来我想知道:是否可以在编译时解析模板?

2 个答案:

答案 0 :(得分:5)

只需将它们设为全局变量like this即可。您仍然会在运行时解析模板,但是如果它无法正确解析它,二进制文件会在您运行它时立即失败。

package main

import (
    "fmt"
    "text/template"
)

var t = template.Must(template.New("name").Parse("text"))

func main() {
    fmt.Println("Template", t)
}

答案 1 :(得分:2)

无法在编译时执行此操作,但您可以在main()之前通过在the init function内解析它们来解析它们。