获取“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) }