"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi ne puis-je pas attribuer []byte à une chaîne dans Go ?

Pourquoi ne puis-je pas attribuer []byte à une chaîne dans Go ?

Publié le 2024-11-08
Parcourir:445

Why Can\'t I Assign []byte to a String in Go?

Erreur d'attribution d'octets : impossible d'attribuer []octet à une chaîne

Lors de votre tentative de lecture de fichiers dans un dossier, vous avez rencontré l'erreur "impossible d'attribuer [] octet à z (chaîne de type) en affectation multiple" lors de la tentative de lecture du contenu d'un fichier. Examinons la raison de cette erreur.

Comprendre les affectations multiples

Lorsque plusieurs variables se voient attribuer des valeurs sur une seule ligne, comme dans votre code :

z, err := ioutil.ReadFile(z)

Chaque variable sur le côté gauche de l'opérateur d'affectation reçoit une valeur correspondante renvoyée par la fonction. Dans ce cas, la fonction ioutil.ReadFile renvoie deux valeurs : []octet (données binaires) et erreur.

Attribution d'octets aux chaînes

La partie problématique tente pour attribuer l'octet [] (données binaires) renvoyé par ioutil.ReadFile à la variable z, qui est déclarée sous forme de chaîne. C'est là que l'erreur se produit, car z attend une valeur de chaîne, pas des données binaires.

Solution

Pour résoudre cette erreur, vous avez deux options :

  1. Convertissez le []octet en chaîne à l'aide de la fonction string() :
buf, err := ioutil.ReadFile(z)
if err != nil {
    log.Fatal(err)
}
z = string(buf)
  1. Déclarez z comme un []octet au lieu d'une chaîne :
var z []byte
z, err := ioutil.ReadFile(z)

Travailler avec des données binaires

Bien que la conversion de données binaires en chaînes soit possible, il est souvent préférable de travailler directement avec le données binaires elles-mêmes. Cela évite les conversions inutiles et préserve le format d'origine des données.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3