Golang String do bajtu i odwrotnie

Golang String do bajtu i odwrotnie
Definiujemy ciąg w Go jako kawałek bajtów tylko do odczytu. Ciąg może pomieścić tekst Unicode w kodowaniu UTF-8 lub w innym predefiniowanym formacie. Ale ponieważ sznurek jest w zasadzie kawałkiem bajtów, niekoniecznie musi przechowywać takie typy.

W tym artykule dowiesz się, jak przekonwertować ciąg na tablicę bajtów i tablicę bajtów na ciąg. Należy pamiętać, że ten artykuł nie służy jako wprowadzenie do strun lub bajtów w Go.

Konwertuj ciąg na bajt

Zanim dowiemy się, jak przekonwertować ciąg na bajt, zdefiniujmy, czym jest bajt. Bajt odnosi się do 8-bitowej liczby całkowitej. Bajty są bardzo powszechne podczas pracy z plasterkami.

W Go możemy przekonwertować ciąg na bajt za pomocą funkcji bajtów ().

Składnia funkcji jest jak pokazana:

[] bajt (ciąg)

Funkcja przyjmuje ciąg jako argument. Funkcja zwraca plasterek ze wszystkimi bajtami znaków w określonym ciągu.

Spójrzmy na przykład:

Pakiet Main
importować „fmt”
func main ()
str: = "Linuxhint"
bajte_arr: = [] bajte (str)
fmt.Println (byte_arr)

W powyższym przykładzie definiujemy zmienną o nazwie „Str” z wartością „Linuxhint”.

Następnie używamy metody BYTE () do konwersji ciągu na tablicę bajtów.

Powyższy kod zwraca dane wyjściowe jako:

$ idź uruchom string_to_byte.Iść
[76 105 110 117 120 104 105 110 116]

Skopiuj ciąg na plasterek bajtowy

Możemy również przekonwertować ciąg na bajt, kopiując ciąg na plasterek Byter. Osiągamy to za pomocą metody kopii ().

Poniższy fragment kodu pokazuje, jak to osiągnąć:

Pakiet Main
importować „fmt”
func main ()
copy_string ()

func copy_string ()
// pusta plasterek
BYTE_SLICE: = MAKE ([] bajt, 10)
str: = "Linuxhint"
str_copy: = copy (byte_slice, str)
fmt.Println (str_copy)
fmt.Println (byte_slice)

W powyższym przykładzie tworzymy pusty kawałek za pomocą funkcji Make.

Następnie używamy metody kopiowania () do kopiowania ciągu do plasterka bajtów. Widzimy liczbę bajtów skopiowanych do plasterka za pomocą fmt.Println (str_copy).

Aby wyświetlić pełny ciąg w bajtach, użyj FMT.Println (byte_slice):

Przykładem jest to, jak pokazano:

9 // skopiowane bajty
[76 105 110 117 120 104 105 110 116 0] // plasterek bajtów

Konwertuj bajt na ciąg

Pierwszą metodą, której możemy użyć do konwersji tablicy bajtowej na ciąg, jest metoda newBuffer (). Tworzy to nowy bufor, a następnie możemy użyć metody String (), jak pokazano w poniższym przykładzie:

Pakiet Main
import (
„Bajty”
„FMT”
)
func main ()
arr: = [] bajte „l”, „i”, 'n', 'u', 'x'
str: = bajty.NewBuffer (ARR).Strunowy()
fmt.Println (str)

Zaczynamy od utworzenia tablicy bajt. Następnie używamy metody newBuffer () do utworzenia nowego bufora, a następnie używamy metody String (), aby uzyskać wyjście String.

Powstała funkcja to:

$ Go uruchom bajte_to_string.Iść
Linux

Konwertuj bajt na ciąg z krojeniem

Kolejną techniką, której możemy użyć do konwersji tablicy bajtowej na ciąg, jest krojenie. Przykład ilustruje, jak użyć tej metody:

FUNC SLICH ()
arr: = [] bajte „l”, „i”, 'n', 'u', 'x'
str: = string (arr [:])
fmt.Println (str)

Powyższy kod powinien wziąć tablicę bajtów i przekonwertować na ciąg.

Konwertuj bajt na ciąg za pomocą metody SprintF ()

Funkcja SprintF () umożliwia konwersję tablicy bajtowej na ciąg. Rozważ przykład pokazany poniżej:

func sprintf_method ()
arr: = [] bajte „l”, „i”, 'n', 'u', 'x'
str: = fmt.Sprintf („%S”, ARR)
fmt.Println (str)

Powyższa metoda powinna przekonwertować tablicę bajtów na ciąg. Należy pamiętać, że ta metoda jest uważana wolniej w porównaniu z innymi opcjami.

Wniosek

W tym przewodniku badaliśmy świat języka programowania Go i jak przekonwertować bajt na ciąg i odwrotnie.

Szczęśliwe kodowanie!