Go 템플릿 내에서 목표는 다음을 에뮬레이트하는 것입니다.
{{$var := template "my-template"}}
그러나 이 접근 방식을 사용하면 "예기치 않은 <템플릿>" 오류가 발생합니다. 피연산자."
Go에서는 템플릿 실행 결과를 캡처하는 내장 메서드를 제공하지 않습니다. 대신 이 작업을 수행하는 함수를 등록하세요.
함수를 등록하려면 Template.Funcs() 함수를 사용하세요. Template.ExecuteTemplate()으로 명명된 템플릿을 실행하고 bytes.Buffer를 대상으로 사용하여 직접 템플릿 실행 결과를 버퍼에 캡처합니다.
package main import ( "bytes" "html/template" "log" "os" ) var t *template.Template func execTempl(name string) (string, error) { buf := &bytes.Buffer{} err := t.ExecuteTemplate(buf, name, nil) return buf.String(), err } func main() { t = template.Must(template.New("").Funcs(template.FuncMap{ "execTempl": execTempl, }).Parse(tmpl)) if err := t.Execute(os.Stdout, nil); err != nil { log.Fatal(err) } } const tmpl = `{{define "my-template"}}my-template content{{end}} See result: {{$var := execTempl "my-template"}} {{$var}} `
등록된 execTempl() 함수를 사용하여 "my-template" 템플릿을 실행합니다. 결과를 $var 템플릿 변수에 저장한 후 출력에 추가하거나 다른 함수에 전달할 수 있습니다.
See result: my-template content
출력은 " my-template' 템플릿을 선택하여 기본 템플릿 내에 표시합니다.
위 내용은 Go 템플릿 출력을 캡처하여 변수에 할당하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!