将一个 bytes.Buffer 的内容写入(或复制)到另一个

Write (or copy) the contents of one bytes.Buffer to another

我有 2 个 bytes.Buffer 个实例。我想将第二个(我们称之为 src)的结果复制到第一个(dst

显然 io.Copy 方法在这种情况下不起作用,因为它需要一个 io.Writer 接口并且 bytes.Buffer 没有实现相应的方法。

io.CopyBuffer 方法也是如此。

将一个 bytes.Buffer 的内容复制到另一个最合适的方法是什么?

使用

dst.Write(src.Bytes())

src 中的所有字节写入 dst,其中 srcdst*bytes.Bufferbytes.Buffer

bytes.Buffer 确实实现了 io.Writer,但前提是它是一个指针:

package main
import "bytes"

func main() {
   a := bytes.NewBufferString("hello world")
   b := new(bytes.Buffer)
   b.ReadFrom(a)
   println(b.String())
}

https://godocs.io/bytes#Buffer.Write