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 ?

Pourquoi « bytes.Buffer » n'implémente-t-il pas « io.Writer » dans Go et comment puis-je y remédier ?

Mary-Kate Olsen
Libérer: 2024-12-08 07:54:13
original
946 Les gens l'ont consulté

Why Does `bytes.Buffer` Not Implement `io.Writer` in Go, and How Can I Fix It?

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)
Copier après la connexion

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)
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal