Golang String to octet et vice versa

Golang String to octet et vice versa
Nous définissons une chaîne en Go en tant que tranche d'octets en lecture seule. Une chaîne peut contenir du texte Unicode dans UTF-8 Encoding ou autre format prédéfini. Mais comme une chaîne est essentiellement une tranche d'octets, il ne doit pas nécessairement détenir de tels types.

Dans cet article, vous apprendrez à convertir une chaîne en un tableau d'octets et un tableau d'octets en une chaîne. Gardez à l'esprit que cet article ne sert pas d'introduction aux chaînes ou aux octets dans Go.

Convertir la corde en octet

Avant d'apprendre à convertir une chaîne en un octet, définissons ce qu'est un octet. Un octet fait référence à un entier non signé 8 bits. Les octets sont très courants lorsque vous travaillez avec des tranches.

Dans Go, nous pouvons convertir une chaîne en un octet en utilisant la fonction octet ().

La syntaxe de fonction est comme indiqué:

[] octet (chaîne)

La fonction prend la chaîne comme argument. La fonction renvoie une tranche avec tous les octets des caractères dans la chaîne spécifiée.

Regardons un exemple:

package principal
Importer "FMT"
func main ()
str: = "Linuxhint"
BYTE_ARR: = [] BYTE (STR)
fmt.Println (byte_arr)

Dans l'exemple ci-dessus, nous définissons une variable appelée «str» avec la valeur «Linuxhint».

Nous utilisons ensuite la méthode byte () pour convertir la chaîne en un tableau d'octet.

Le code ci-dessus renvoie une sortie comme suit:

$ go run string_to_byte.aller
[76 105 110 117 120 104 105 110 116]

Copier la chaîne en tranche d'octets

Nous pouvons également convertir une chaîne en octet en copie une chaîne en une tranche byter. Nous accomplissons cela en utilisant la méthode Copy ().

L'extrait de code ci-dessous montre comment y parvenir:

package principal
Importer "FMT"
func main ()
copy_string ()

func copy_string ()
// Tranche vide
byte_slice: = make ([] octet, 10)
str: = "Linuxhint"
str_copy: = copy (byte_slice, str)
fmt.Println (str_copy)
fmt.Println (byte_slice)

Dans l'exemple ci-dessus, nous créons une tranche vide en utilisant la fonction de faire.

Nous utilisons ensuite la méthode Copy () pour copier la chaîne en tranche d'octets. Nous pouvons voir le nombre d'octets copiés sur la tranche à l'aide du FMT.Println (str_copy).

Pour afficher la chaîne complète en octets, utilisez le FMT.Println (byte_slice):

Un exemple de sortie est comme indiqué:

9 // copié des octets
[76 105 110 117 120 104 105 110 116 0] // Tranche d'octet

Convertir l'octet en chaîne

La première méthode que nous pouvons utiliser pour convertir un tableau d'octet en une chaîne est la méthode NewBuffer (). Cela crée un nouveau tampon, puis nous pouvons utiliser la méthode String () comme indiqué dans l'exemple ci-dessous:

package principal
importer (
"octets"
"FMT"
)
func main ()
arr: = [] byte 'l', 'i', 'n', 'u', 'x'
str: = octets.NewBuffer (ARR).Chaîne()
fmt.Println (str)

Nous commençons par créer un tableau d'octets. Nous utilisons ensuite la méthode NewBuffer () pour créer un nouveau tampon, puis utilisons la méthode String () pour obtenir la sortie de chaîne.

La fonction résultante est comme:

$ va run byte_to_string.aller
Linux

Convertir l'octet en chaîne avec le tranchage

Une autre technique que nous pouvons utiliser pour convertir un tableau d'octets en chaîne est de trancher. Un exemple illustre comment utiliser cette méthode:

func tranching ()
arr: = [] byte 'l', 'i', 'n', 'u', 'x'
str: = string (arr [:])
fmt.Println (str)

Le code ci-dessus doit prendre le tableau d'octets et le convertir en une chaîne.

Convertir l'octet en chaîne à l'aide de la méthode sprintf ()

La fonction sprintf () vous permet de convertir un tableau d'octets en une chaîne. Considérez l'exemple ci-dessous:

func sprintf_method ()
arr: = [] byte 'l', 'i', 'n', 'u', 'x'
str: = fmt.Sprintf ("% s", arr)
fmt.Println (str)

La méthode ci-dessus doit convertir le tableau d'octet en une chaîne. Gardez à l'esprit que cette méthode est considérée plus lentement par rapport à d'autres options.

Conclusion

Dans ce guide, nous avons exploré le monde du langage de programmation Go et comment convertir un octet en une chaîne et vice versa.

Codage heureux!