Maison >développement back-end >Golang >Comment ajouter correctement plusieurs tranches d'octets dans Go à l'aide de « append » ?

Comment ajouter correctement plusieurs tranches d'octets dans Go à l'aide de « append » ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-15 20:35:11870parcourir

How Do I Correctly Append Multiple Byte Slices in Go Using `append`?

Ajout de tranches binaires avec des arguments variables

Vous avez rencontré une erreur en essayant d'ajouter des tranches de deux octets (un et deux) à l'aide de append . Le problème vient de la tentative de transmission des deux tranches sous forme de []octet sans utiliser la syntaxe correcte pour transmettre les arguments de variable dans Go.

Conformément à la spécification du langage de programmation Go :
"append(s S , x ...T) S // T est le type d'élément de S"

Pour votre cas, où l'argument final (deux) est une tranche []byte, vous devez ajouter l'opérateur ... :
"Si l'argument final est attribuable à un type de tranche []T, il peut être transmis inchangé comme valeur d'un paramètre ...T si l'argument est suivi par ...."

Par conséquent, le code correct est :

import "fmt"
func main() {
    one := make([]byte, 2)
    two := make([]byte, 2)
    fmt.Println(append(one[:], two[:]...))
}

Cela ajoute correctement les deux tranches et imprime le binaire combiné 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