Lösung für den Fehler „bytes.Buffer implementiert io.Writer nicht“
In Go ermöglicht die Implementierung der io.Writer-Schnittstelle Objekten dies Bereitstellung einer Methode zum Schreiben von Daten. Viele Funktionen, einschließlich bufio.NewWriter(), erwarten einen Parameter vom Typ io.Writer, der einen Bytestrom empfangen kann.
Allerdings kann ein Fehler auftreten, wenn versucht wird, eine bytes.Buffer-Variable als io zu verwenden .Writer:
bytes.Buffer does not implement io.Writer (Write method has pointer receiver)
Dieser Fehler tritt auf, weil die Write-Methode von bytes.Buffer einen Zeiger hat Empfänger.
Lösung:
Um diesen Fehler zu beheben, übergeben Sie einen Zeiger auf den Puffer anstelle des Puffers selbst:
import "bufio" import "bytes" func main() { var b bytes.Buffer foo := bufio.NewWriter(&b) }
Durch Übergabe Wenn Sie einen Zeiger auf den Puffer angeben (mit dem Präfix &), aktivieren Sie die Write-Methode, um den zugrunde liegenden Puffer zu ändern. Dies erfüllt die Anforderung an einen Typ, der die io.Writer-Schnittstelle mit einem Zeigerempfänger implementiert.
Das obige ist der detaillierte Inhalt vonWarum implementiert „bytes.Buffer' „io.Writer' in Go nicht und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!