Maison > développement back-end > Golang > Comment convertir efficacement une tranche Go []int8 en chaîne ?

Comment convertir efficacement une tranche Go []int8 en chaîne ?

Barbara Streisand
Libérer: 2024-12-15 10:44:10
original
505 Les gens l'ont consulté

How to Efficiently Convert a Go []int8 Slice to a String?

Conversion de []int8 en String

Problème :

Comment convertir efficacement une tranche de int8 ([]int8) en une chaîne ? La conversion de chaîne standard (byteslice) pour []byte échoue pour []int8 avec l'erreur "Impossible de convertir en chaîne de type."

Solution :

Depuis [] int8 et []byte ont des types différents, la conversion directe n'est pas possible. Ainsi, une conversion manuelle est requise.

Le processus de conversion comporte trois étapes :

  1. Convertir int8 en octet : Convertir chaque valeur int8 en un octet à l'aide de l'octet (v) conversion.
  2. Créez une tranche d'octets : Allouez un []octet tranche de la même longueur que la tranche d'entrée.
  3. Copier les valeurs dans la tranche d'octets : Attribuez les octets convertis à la tranche d'octets à l'aide de l'indexation ([]).

Implémentation du code :

Le code Go suivant démontre le conversion :

func B2S(bs []int8) string {
    b := make([]byte, len(bs))
    for i, v := range bs {
        b[i] = byte(v)
    }
    return string(b)
}
Copier après la connexion

Ce code garantit que les valeurs int8 sont correctement converties en octets, ce qui donne une représentation précise de la chaîne.

Remarque :

Bien que l'énoncé du problème mentionnait initialement []int8, le demandeur l'a ensuite corrigé en []uint8. Pour []uint8, la conversion directe en chaîne à l'aide de string(ba) est possible car byte est un alias pour uint8.

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