Maison  >  Article  >  développement back-end  >  Pourquoi ne puis-je pas attribuer []byte à une chaîne dans Go ?

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

DDD
DDDoriginal
2024-10-27 01:57:30177parcourir

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

Comprendre l'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 :

<code class="go">z, err := ioutil.ReadFile(z)</code>

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 : []byte (données binaires) et erreur.

Attribuer des 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 survient 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() :
<code class="go">buf, err := ioutil.ReadFile(z)
if err != nil {
    log.Fatal(err)
}
z = string(buf)</code>
  1. Déclarez z comme un []octet au lieu d'une chaîne :
<code class="go">var z []byte
z, err := ioutil.ReadFile(z)</code>

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 les données binaires elles-mêmes. Cela évite les conversions inutiles et préserve le format original des données.

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!

Déclaration:
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