De la “octets.Tampon de ne pas mettre en œuvre io.Écrivain” message d'erreur

J'essaie d'avoir certains Vont objet de mettre en œuvre io.Écrivain, mais écrit d'une chaîne de caractères au lieu d'un fichier ou de fichiers objet. J'ai pensé bytes.Buffer fonctionnerait car elle met en œuvre Write(p []byte). Cependant lorsque j'essaye ceci:

import "bufio"
import "bytes"

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

J'obtiens l'erreur suivante:

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)

Je suis confus, car il clairement implémente l'interface. Comment puis-je résoudre ce problème?

  • J'ai rencontré ce problème au moins deux fois, et à Googler pour une solution était vraiment inutile.
  • Notez que la création d'un bufio n'est pas nécessaire. Juste utiliser &b, comme un oi.Auteur
InformationsquelleAutor Kevin Burke | 2014-05-04