获取“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 Kimport "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! hcannot 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 |
|
|
|
|
|