获取“bytes.Buffer不执行io.Writer”错误消息

我试图让一些Go对象实现io.Writer,但写入一个string,而不是一个文件或类似文件的对象。 我以为bytes.Buffer将工作,因为它实现了Write(p []byte) 。 但是,当我尝试这个:

 import "bufio" import "bytes" func main() { var b bytes.Buffer foo := bufio.NewWriter(b) } 

我得到以下错误:

 cannot use b (type bytes.Buffer) as type io.Writer in function argument: bytes.Buffer does not implement io.Writer (Write method has pointer receiver) 

我很困惑,因为它清楚地实现了界面。 我该如何解决这个错误?

传递一个指向缓冲区的指针,而不是缓冲区本身:

 import "bufio" import "bytes" func main() { var b bytes.Buffer writer := bufio.NewWriter(&b) }