필자는 템플릿이 template.Template 형식의 컴파일 된 버전을 얻기 위해 런타임에 지정된 소스에서 파싱된다는 것을 알고 있습니다. 그런 다음, 컴파일 된 버전은 실제 템플릿 작업을 수행하기 위해 일부 데이터에서 실행됩니다.컴파일 타임에 템플릿 구문 분석
하지만 다음은 궁금합니다. 컴파일 할 때 템플릿을 구문 분석 할 수 있습니까?
필자는 템플릿이 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
아니요.하지만 애플리케이션을 시작할 때 한 번 구문 분석하여 다시 사용할 수 있도록 캐시 할 수 있습니다. – thwd
오케이, 그게 내가 생각한거야. 감사 ! – girodt