Maison > développement back-end > Golang > Comment ajouter correctement deux tranches []byte dans Go ?

Comment ajouter correctement deux tranches []byte dans Go ?

Susan Sarandon
Libérer: 2024-12-06 19:16:13
original
730 Les gens l'ont consulté

How to Correctly Append Two []byte Slices in Go?

Comment puis-je utiliser Go pour ajouter des tranches ou des tableaux de deux []octets ?

Dans Go, l'ajout de tranches de tableau de deux octets peut rencontrer des erreurs en raison d'une incompatibilité de type. Voici un aperçu plus approfondi et l'approche correcte pour y parvenir.

Problème :

Lors de la tentative d'ajout de tranches de tableau de deux octets, des erreurs telles que « impossible d'utiliser [array] ( tapez []uint8) comme type uint8 dans append" peut survenir. Cela se produit car la fonction d'ajout s'attend à ce que les arguments correspondent au type d'élément de la tranche.

Solution :

Pour résoudre ce problème, vous devez spécifier explicitement les types de tranche. en utilisant la syntaxe []T... pour l'argument final. Dans ce cas, T est []byte.

Voici un exemple :

package main

import (
    "fmt"
)

func main() {
    one := make([]byte, 2)
    two := make([]byte, 2)
    one[0] = 0x00
    one[1] = 0x01
    two[0] = 0x02
    two[1] = 0x03

    result := append(one[:], two[:]...)
    fmt.Println(result)
}
Copier après la connexion

Dans ce code, le résultat sera imprimé sous la forme "[0 1 2 3]", combinant efficacement les tranches de tableau de deux octets. La notation "..." garantit que two[:] est passé comme argument de tranche.

Remarques supplémentaires :

  • Lors de l'ajout de deux tranches du même type, la signature de append est : append(s []T, a ...T)
  • La valeur de retour de append est une nouvelle tranche, et la tranche d'origine reste inchangé.
  • Vous pouvez également ajouter des valeurs d'octet individuelles à l'aide de la fonction append, par exemple : append(one, 0x02, 0x03)

En suivant ces instructions, vous pouvez ajouter correctement plusieurs octets tranches de tableau dans Go.

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