將模板輸出重新分配給變數
在 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中文網其他相關文章!