Maison >développement back-end >Golang >Comment convertir une tranche d'octets en tranche Int en Go sans erreurs d'analyse ?

Comment convertir une tranche d'octets en tranche Int en Go sans erreurs d'analyse ?

DDD
DDDoriginal
2024-11-23 21:25:18935parcourir

How to Convert a Byte Slice to an Int Slice in Go Without Parsing Errors?

Convertir une tranche d'octets en tranche entière : résolution de l'erreur d'analyse

Dans Go, la conversion d'une tranche d'octets en tranche entière nécessite un examen attentif. Alors que les méthodes traditionnelles impliquent de convertir la tranche d'octets en chaîne, puis d'utiliser strconv.Atoi, cette approche peut rencontrer des erreurs d'analyse.

var d = []byte{0x01}
val, err := strconv.Atoi(string(d))

Le code ci-dessus génère une erreur car la tranche d'octets contient une valeur d'octet brute. (1) plutôt qu'un caractère ASCII (49).

Approche correcte :

Pour Pour convertir une tranche d'octets en tranche int, effectuez les opérations suivantes :

byteSlice := []byte{1, 2, 3, 4}
intSlice := make([]int, len(byteSlice))
for i, b := range byteSlice {
    intSlice[i] = int(b)
}

Ce code parcourt chaque valeur d'octet dans la tranche d'octets, la convertissant en un entier. L'intSlice résultant contiendra les représentations entières correspondantes des valeurs d'octet.

En comprenant cette nuance, les développeurs peuvent éviter les erreurs d'analyse et convertir efficacement les tranches d'octets en tranches int 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