Maison >développement back-end >Golang >Pourquoi « bytes.Buffer » n'implémente-t-il pas « io.Writer » dans Go et comment puis-je y remédier ?
Résolution de l'erreur "bytes.Buffer n'implémente pas io.Writer"
Dans Go, l'implémentation de l'interface io.Writer permet aux objets de fournir une méthode pour écrire des données. De nombreuses fonctions, y compris bufio.NewWriter(), attendent un paramètre de type io.Writer pouvant recevoir un flux d'octets.
Cependant, une erreur peut se produire lors de la tentative d'utilisation d'une variable bytes.Buffer comme io. .Writer :
bytes.Buffer does not implement io.Writer (Write method has pointer receiver)
Cette erreur se produit car la méthode Write de bytes.Buffer a un pointeur récepteur.
Solution :
Pour résoudre cette erreur, passez un pointeur vers le tampon au lieu du tampon lui-même :
import "bufio" import "bytes" func main() { var b bytes.Buffer foo := bufio.NewWriter(&b) }
En passant un pointeur vers le tampon (en le préfixant de &), vous activez la méthode Write pour modifier le tampon sous-jacent. Cela répond à l'exigence d'un type qui implémente l'interface io.Writer avec un récepteur de pointeur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!