在我的理解中,go模板是在運行時從給定源解析的,以便獲得template.Template類型的編譯版本。然後,對某些數據執行編譯後的版本以執行實際的模板。在編譯時解析模板
但是,我想知道:是否有可能在編譯時解析模板?
在我的理解中,go模板是在運行時從給定源解析的,以便獲得template.Template類型的編譯版本。然後,對某些數據執行編譯後的版本以執行實際的模板。在編譯時解析模板
但是,我想知道:是否有可能在編譯時解析模板?
只是讓它們成爲全局變量like this。您仍然可以在運行時解析模板,但它會立即生效,因此如果二進制文件無法正確解析它,只要運行它就會失敗。
package main
import (
"fmt"
"text/template"
)
var t = template.Must(template.New("name").Parse("text"))
func main() {
fmt.Println("Template", t)
}
不能在編譯時執行它,但是您可以在main()
之前通過在the init function內解析它們來解析它們。
我也是這麼做的。 init()函數似乎非常適合安裝相關的東西,比如編譯/緩存模板,設置數據庫連接以及在應用程序可用之前做其他任何你想做的事情。 – AntelopeSalad 2013-02-14 23:10:05
不,但您可以在啓動應用程序時解析它們並緩存它們以供重用。 – thwd 2013-02-11 10:58:13
好的,這就是我的想法。謝謝 ! – girodt 2013-02-11 12:28:43