Ajout de tranches d'octets et de tableaux dans Go : dépannage et solutions
Dans Go, l'ajout de tranches de tableau de deux octets peut entraîner des erreurs inattendues. Considérez le code suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Ce code produit les erreurs suivantes :
1 2 |
|
Contrairement à la réputation de Go pour ses tranches robustes, ces erreurs semblent inexplicables. Pour comprendre et résoudre ce problème, nous devons approfondir la spécification du langage de programmation Go.
Comprendre la spécification
Selon la spécification Go, la fonction d'ajout prend un tranche s de type S et zéro ou plusieurs valeurs x de type T, où T est le type d'élément de S. Le résultat est une nouvelle tranche de type S avec les éléments de s suivis des éléments de x.
Essentiellement, pour l'argument final, s'il est attribuable à un type de tranche []T, il peut être transmis inchangé comme valeur d'un paramètre ...T s'il est suivi de ....
Résoudre les erreurs
Dans le code fourni, l'argument final à ajouter n'est pas suivi de .... Pour résoudre ce problème, nous devons spécifier explicitement []T... pour l'argument final. Dans notre cas, T est un octet, donc le code devrait être :
1 |
|
Pour le deuxième exemple, nous devrions faire une modification similaire :
1 |
|
Notes supplémentaires
Conclusion
En comprenant les nuances de la fonction append et les directives de la spécification Go pour les arguments variadiques, nous pouvons efficacement ajouter des tableaux d'octets dans Go et éviter les erreurs rencontrées dans le code original.
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!