回答

收藏

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

技术问答 技术问答 262 人阅读 | 0 人回复 | 2023-09-12

我试着让一些 Go 对象实现 io.Writer,但是写字符串而不是文件或类似文件的对象。bytes.Buffer因为它用,因为它已经实现了Write(p []byte).但是,当我尝试这样做的时候:
6 y5 V2 n8 w5 r4 V' f: `- w5 K
    import "bufio"import "bytes"func main()      var b bytes.Buffer    foo := bufio.NewWriter(b)}
    ; y  a/ f- @/ s! `+ ]7 u) W9 r
我收到了以下错误:
6 d! k/ u. X6 `+ Q. T5 e% U! h
    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)7 T9 I* P, ~1 e4 B0 a6 ]
我很困惑,因为它清楚地实现了界面。如何解决这个错误?0 X% o0 `/ T  [" @
                                                               
9 Y5 a: R& y# q1 w3 Q) R    解决方案:                                                               
/ d9 A/ w& a0 D                                                                而不是缓冲区本身:8 q- X; Q* O1 z) E
    import "bufio"import "bytes"func main()      var b bytes.Buffer    foo := bufio.NewWriter(&b)}
    : Q3 i% s* d6 m- i! q  R; j* ]$ B# L0 `1 P
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则