回答

收藏

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

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

我试着让一些 Go 对象实现 io.Writer,但是写字符串而不是文件或类似文件的对象。bytes.Buffer因为它用,因为它已经实现了Write(p []byte).但是,当我尝试这样做的时候:. d/ I$ B$ c! E" I. X
    import "bufio"import "bytes"func main()      var b bytes.Buffer    foo := bufio.NewWriter(b)}
    % K0 P- U1 B9 x) L6 u- N7 f- Z
我收到了以下错误:# w8 c1 n3 p: y5 D; T* Y' p4 ~
    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)
    + y) {8 u8 O/ E* B3 o
我很困惑,因为它清楚地实现了界面。如何解决这个错误?8 c: q4 h3 d* `  U; o# g/ k
                                                               
& v  V  o8 J2 C( {    解决方案:                                                               
# ^+ x" ]/ \; a7 Q* _( w6 \# o4 k" x                                                                而不是缓冲区本身:8 V$ j9 I$ s9 H2 \- J) ~) Y
    import "bufio"import "bytes"func main()      var b bytes.Buffer    foo := bufio.NewWriter(&b)}" Z, R. i+ o' F
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则