一尘不染

获取“bytes.Buffer 未实现 io.Writer”错误消息

go

我试图让一些 Go 对象实现 io.Writer,但写入字符串而不是文件或类似文件的对象。我认为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)

我很困惑,因为它清楚地实现了接口。如何解决此错误?


阅读 202

收藏
2021-11-26

共1个答案

一尘不染

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

import "bufio"
import "bytes"

func main() {
    var b bytes.Buffer
    foo := bufio.NewWriter(&b)
}
2021-11-26