1. ホーム
  2. go

[解決済み] bytes.Buffer does not implement io.Writer" というエラーメッセージが表示される。

2022-11-13 19:57:41

質問

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)

明らかにインターフェイスを実装しているので、私は混乱しています。どうすればこのエラーを解決できますか?

どのように解決するのですか?

バッファそのものではなく、バッファへのポインタを渡します。

import "bufio"
import "bytes"

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