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

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

Susan Sarandon
Susan Sarandonoriginal
2024-12-06 20:42:13428parcourir

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

Conversion de []int8 en chaîne

La conversion de []int8 en chaîne nécessite un processus manuel car il s'agit de types de données différents. Pour déterminer l'approche de conversion optimale, nous devons considérer deux options : []byte et []rune.

Option 1 : []byte

Les chaînes sont stockées en interne sous forme Séquences d'octets codées en UTF-8, représentées par []byte. La conversion de []int8 en []byte est simple, car un octet est un alias pour uint8 et le langage prend en charge la conversion de []byte en chaîne.

Option 2 : []rune

Une rune est un point de code Unicode. Le mappage des valeurs int8 aux runes une à une entraînerait une sortie incorrecte si l'entrée contient des caractères codés à l'aide de plusieurs octets (UTF-8). Par conséquent, nous devons opter pour un mappage 1-1 int8 en octets.

Méthode de conversion optimale

En fonction des exigences, la méthode de conversion la plus efficace est :

func B2S(bs []int8) string {
    b := make([]byte, len(bs))
    for i, v := range bs {
        b[i] = byte(v)
    }
    return string(b)
}

Cette méthode utilise l'indexation [] pour l'affectation des éléments au lieu de la fonction d'ajout, offrant des performances améliorées grâce à la longueur de tranche connue.

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