Maison >développement back-end >Golang >Quel est le moyen le plus efficace de convertir des chaînes en tableaux d'octets dans Go ?

Quel est le moyen le plus efficace de convertir des chaînes en tableaux d'octets dans Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-24 00:20:11766parcourir

What's the Most Efficient Way to Convert Strings to Byte Arrays in Go?

Comment convertir efficacement des chaînes en tableaux d'octets dans Go

Lorsque vous travaillez avec des données binaires dans Go, il est souvent nécessaire de convertir des chaînes en tableaux d'octets. Il existe plusieurs approches pour y parvenir, chacune avec ses propres avantages et inconvénients.

Dangereux mais rapide : utiliser le découpage d'octets

L'extrait fourni dans la question utilise un for boucle pour attribuer manuellement chaque octet de la chaîne au tableau d'octets :

for k, v := range []byte(str) {
  arr[k] = byte(v)
}

Bien que cette méthode soit efficace en termes de vitesse, elle est également dangereux car il n'effectue aucune vérification des limites et peut entraîner des erreurs d'exécution si le tableau de destination est trop petit.

Sûr et simple : utilisation du littéral d'octets

Une approche plus concise et sûre consiste à utiliser la syntaxe littérale d'octet :

[]byte("Here is a string....")

Cette méthode construit directement un tableau d'octets à partir de la chaîne fournie, sans avoir besoin de conversion manuelle ou de boucles.

Autres alternatives

  • copie : La fonction de copie peut être utilisée pour transférer des données entre deux tableaux d'octets ou entre un chaîne et un tableau d'octets, à condition que le tableau de destination ait une capacité suffisante.
  • strings.NewReader : pour les situations où la chaîne est longue et stockée sous forme de io.Reader, la fonction strings.NewReader peut être utilisée pour créer un tableau d'octets à partir de la représentation de la chaîne sous forme de flux d'octets.

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