Maison > développement back-end > Golang > le corps du texte

Pourquoi Go signale-t-il une erreur de variable inutilisée pour « ajouter » mais pas pour l'affectation directe de tranches ?

Mary-Kate Olsen
Libérer: 2024-11-14 19:13:02
original
216 Les gens l'ont consulté

Why Does Go Flag an Unused Variable Error for `append` But Not for Direct Slice Assignment?

Erreur de compilation Go pour le résultat « ajouter » inutilisé

Le compilateur Go peut émettre une erreur de compilation de variable inutilisée lors de l'ajout à une tranche et non en utilisant le résultat. Ce comportement diffère des autres langages qui génèrent une erreur de variable inutilisée lors de la déclaration d'une variable sans l'utiliser.

Dans Go, la présence d'une variable inutilisée est signalée comme une erreur uniquement si la variable n'est pas lue. L'ajout à une tranche à l'aide de append() implique de lire la tranche telle qu'elle est transmise à la fonction. Un comportement similaire est observé lors de l'attribution d'une valeur à une clé de mappage.

Considérez le code suivant :

var mySlice []string
mySlice = append(mySlice, "halo")
Copier après la connexion

Dans cet exemple, mySlice est lu lors de l'opération d'ajout, même si son résultat est pas utilisé ailleurs. Par conséquent, ce code ne générera pas d'erreur de variable inutilisée.

Cependant, attribuer une valeur à une tranche à l'aide de l'opérateur d'affectation directe n'implique pas la lecture de l'en-tête de la tranche. En conséquence, le code suivant produira une erreur de variable inutilisée :

var i = []int{0}
i = []int{1}
Copier après la connexion

Pour résoudre cette erreur, la tranche peut être utilisée avant de la réaffecter. Par exemple :

var i = []int{0}
i[0] = 1
i = []int{1}
Copier après la connexion

Ce code sera compilé avec succès car i[0] = 1 lit l'en-tête de la tranche.

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