"bytes.Buffer" und die "io.Writer"-Schnittstelle für Go
Frage: Beim Versuch Wenn Sie die Schnittstelle „io.Writer“ mit einem „bytes.Buffer“-Objekt in Go implementieren, wird die Fehlermeldung „bytes.Buffer does not implementiert“ angezeigt io.Writer“ wird gefunden. Wie kann dieser Fehler behoben werden?
Antwort:
Um diesen Fehler zu beheben, sollte anstelle des Puffers selbst ein Zeiger auf den „bytes.Buffer“ übergeben werden. Dies liegt daran, dass die Methode „Write“ der Schnittstelle „io.Writer“ einen Zeigerempfänger hat, während der Typ „bytes.Buffer“ einen Wertempfänger für seine Methode „Write“ hat.
Hier ist ein Beispiel dafür zeigt, wie man dies richtig implementiert:
import "bufio" import "bytes" func main() { var b bytes.Buffer foo := bufio.NewWriter(&b) }
Durch die Übergabe eines Zeigers auf den „bytes.Buffer“ kann der Code den „io.Writer“ korrekt implementieren. Schnittstelle, da sie jetzt die Zeigerempfängerform der „Write“-Methode verwendet.
Das obige ist der detaillierte Inhalt vonWarum implementiert „bytes.Buffer' „io.Writer' nicht direkt in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!