>  기사  >  백엔드 개발  >  STDOUT으로 인쇄하는 대신 Go 템플릿 출력을 변수로 캡처하려면 어떻게 해야 합니까?

STDOUT으로 인쇄하는 대신 Go 템플릿 출력을 변수로 캡처하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-11-17 03:34:03745검색

How Can I Capture Go Template Output into a Variable Instead of Printing to STDOUT?

템플릿 출력을 변수에 재할당

Go에서 템플릿은 사용자 정의 출력을 생성하는 편리한 방법을 제공합니다. 기본적으로 출력은 t.Execute(os.Stdout, xxx)를 사용하여 표준 출력(STDOUT)으로 인쇄됩니다. 그러나 출력을 변수에 할당하는 것을 선호하는 경우가 있을 수 있습니다.

이를 수행하려면 t.Execute가 io.Writer 인터페이스를 구현하는 입력을 기대한다는 점을 기억하는 것이 중요합니다. 적합한 옵션 중 하나는 bytes.Buffer 또는 strings.Builder와 같은 버퍼를 활용하는 것입니다.

bytes.Buffer 사용:

var tpl bytes.Buffer
if err := t.Execute(&tpl, data); err != nil {
    return err
}

result := tpl.String()

이 코드는 bytes.Buffer를 생성하고 해당 주소를 t.Execute에 전달합니다. 템플릿 실행이 성공하면 출력이 버퍼에 저장되고 tpl.String()을 사용하여 문자열로 검색할 수 있습니다.

strings.Builder 사용:

builder := &strings.Builder{}
if err := t.Execute(builder, data); err != nil {
    return err
}
result := builder.String()

strings.Builder는 보다 전문적인 대안을 제공합니다. 이전 접근 방식과 유사하게 빌더는 io.Writer로 t.Execute에 전달되고 출력은 빌더에서 수집됩니다. 그런 다음 builder.String() 메소드를 사용하여 출력을 문자열로 검색할 수 있습니다.

위 내용은 STDOUT으로 인쇄하는 대신 Go 템플릿 출력을 변수로 캡처하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.