首頁 >後端開發 >Golang >如何將 Go 模板輸出捕獲到變數中而不是列印到 STDOUT?

如何將 Go 模板輸出捕獲到變數中而不是列印到 STDOUT?

DDD
DDD原創
2024-11-17 03:34:03811瀏覽

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:

此程式碼建立bytes.Buffer 並將其位址傳遞給 t.Execute。如果模板執行成功,輸出將儲存在緩衝區中,然後可以使用 tpl.String() 將其作為字串檢索。

使用 strings.Builder:

strings.Builder 提供了更專業的替代方案。與先前的方法類似,建構器作為 io.Writer 傳遞給 t.Execute,並在建構器中收集輸出。然後可以使用 builder.String() 方法以字串形式檢索輸出。

以上是如何將 Go 模板輸出捕獲到變數中而不是列印到 STDOUT?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn