「bytes.Buffer Does Not Implement io.Writer」エラーの解決策
Go では、io.Writer インターフェイスを実装すると、オブジェクトが次のことを行うことができます。データを書き込むためのメソッドを提供します。 bufio.NewWriter() を含む多くの関数は、バイトのストリームを受信できる io.Writer 型のパラメータを予期します。
ただし、bytes.Buffer 変数を io として使用しようとすると、エラーが発生する可能性があります。 .Writer:
bytes.Buffer does not implement io.Writer (Write method has pointer receiver)
このエラーは、bytes.Buffer の Write メソッドにポインターがあるために発生します。 Receiver.
解決策:
このエラーを解決するには、バッファ自体ではなくバッファへのポインタを渡します:
import "bufio" import "bytes" func main() { var b bytes.Buffer foo := bufio.NewWriter(&b) }
By passバッファへのポインタ (先頭に & を付ける) を使用すると、Write メソッドが基になるバッファを変更できるようになります。これは、ポインター レシーバーを備えた io.Writer インターフェイスを実装する型の要件に対処します。
以上がGo で「bytes.Buffer」が「io.Writer」を実装しないのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。