私の理解では、go テンプレートは実行時に特定のソースから解析され、型 template.Template のコンパイル済みバージョンを取得します。次に、コンパイルされたバージョンが一部のデータに対して実行され、実際のテンプレート化が行われます。
しかし、私は疑問に思っています: コンパイル時にテンプレートを解析することは可能ですか?
私の理解では、go テンプレートは実行時に特定のソースから解析され、型 template.Template のコンパイル済みバージョンを取得します。次に、コンパイルされたバージョンが一部のデータに対して実行され、実際のテンプレート化が行われます。
しかし、私は疑問に思っています: コンパイル時にテンプレートを解析することは可能ですか?
このようにグローバル変数にするだけです。実行時にテンプレートを解析することはできますが、すぐに実行されるため、適切に解析できない場合、バイナリは実行するとすぐに失敗します。
package main
import (
"fmt"
"text/template"
)
var t = template.Must(template.New("name").Parse("text"))
func main() {
fmt.Println("Template", t)
}
コンパイル時に行うことはできませんが、 init functionmain()
内で解析することにより、実行時に解析できます。