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

Comment ajouter correctement deux tranches []byte dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-06 19:16:13750parcourir

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)
}

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!

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